The "ALKS Regulation UN R157" ECE/TRANS/WP.29/2020/81 [1] is necessary for the approval of an "Automated Lane Keeping System" on motorways presented in the UNECE Press Release.
BMW has taken on the task of implementing the test scenarios from the ALKS regulation using OpenSCENARIO and OpenDRIVE resulting in a bundle of XML files executable with standard compliant simulators. The ALKS regulation itself leaves room for interpretation, therefore the coordination on a common interpretation with partners is recommended. This work has been conducted in the context of the German research project SET Level.
The ALKS document contains test scenarios at a functional level, which are to be carried out in close coordination with a technical service:
"Until [...] specific test provisions have been agreed, the Technical Service shall ensure that the ALKS is subject to at least the tests outlined in Annex 5."
The here provided 15 executable test scenarios are derived from the 6 subject areas analogous to Annex 5, Chapter 4.1-4.6 as an initial attempt to clarify the described set of functional scenarios.
The implementation of the scenarios should as well be conducted using an international standard to ensure exchange and compatibility via the tool landscape. At the ASAM e.V. members are developing the so called "OpenX" standards for the simulation domain like OpenSCENARIO (Release v1.0 Q1/20) for test scenario definitions and OpenDRIVE (Release v1.6 Q1/2020) for road network definitions.
The focus of the scenarios is on securing the planning aspects of an "Automated Lane Keeping System". By extending the scenarios with references to e.g. 3D models or environmental conditions (e.g. light, rain), aspects of sensor and actuator technology could also be simulated and validated.
The execution in the open source tools "esmini", a basic OpenSCENARIO player, and "openPASS", a simulation platform for traffic simulation, is described on Windows:
Note: The execution with openPASS expects xsltproc on the system path. Check out the "Notes regarding openPASS" for more information.
- Clone or download the repository to your local drive.
- a) Download the latest esmini release (e.g. esmini-bin_win_x64.zip) (tested successfully with esmini 2.0.3),
or
b) Download the latest openPASS release (tested successfully with openPASS v0.7) - a) Create an environment variable "ESMINI", which directs to the "bin" folder of esmini. E.g. "C:\MyFolder\esmini\bin",
or
b) Create an environment variable "OPENPASS", which directs to the installation directory of openPASS. E.g. "C:\MyFolder\openPASS" - Execute the script "run_Scenario.bat", located in the "Scenarios" folder of the local repository
- By changing the parameter values in the parameter declaration section of the OpenSCENARIO files, the concrete scenarios can be varied.
Esmini is an environment simulator with a visualization and does not provide an ALKS. Therefore, for demonstration purposes the vehicle under test is controlled by a so called "default controller", which is provided by esmini. This controller type is defined by the OpenSCENARIO standard as a controller that only maintains the speed and lane offset without taking other traffic participants into account. If the scenarios are used for testing an ALKS, then the activation of the ALKS is already prepared in the scenarios. Every scenario has an "ActivateALKSControllerAction" with an "ActivateALKSControllerStartCondition" referring to the simulation time. If the value for the simulation time is changed to 0, then the ALKS shall be activated directly at the beginning of the scenario. The actual sending of the manufacturer-specific signal from the environment simulation to the ALKS component for ALKS activation needs to be implemented in the environment simulation.
openPASS currently supports the execution of the scenarios 4.1_1, 4.2_1, 4.2_2, 4.2_4, 4.5_1, 4.5_2 and 4.6_1. The remaining scenarios will be enabled in upcoming releases of openPASS.
The execution with openPASS works on Linux with the same scenarios. However, steps from the execution script "run_Scenario.bat" have to be performed manually.
The simulation in openPASS is configured through a set of configuration files. These files consist of the scenario, its catalogs and the map. Additionally some configuration files located in "OSC-ALKS-scenarios\Scenarios\openPASS_Resources" are required. Prior to simulation some slight modifications have to be done in the scenarios. This step is automated in the "run_Scenario.bat" by applying an xslt to the scenario.
Dependency: xsltproc is used to apply the xslt script to the scenario. Guide for installation:
- Download and install msys2
- Extent the path environment variable by the bin directory of msys2 (e.g. "C:\msys64\usr\bin")
Similar to esmini, openPASS does not provide an ALKS. Therefore, for demonstration purposes the vehicle under test is controlled by a so called "Algorithm Following Driver Model - AFDM", which is provided by openPASS. This model is parametrized to drive approximately at its target velocity of 60 km/h and keeps the lane. Other traffic participants are taken into account (This differentiates the execution of the scenarios in openPASS from execution in esmini). For information on the integration of an ALKS in the simulation, we refer to the documentation of openPASS.
Currently openPASS does not support the controller concept of OpenSCENARIO. Instead, entities and their controlling components are defined in the ProfilesCatalog.xml. Sourrounding entities are also controlled by the Algorithm Following Driver Model. Therefore, the velocities of the surrounding entities may differ slightly from the definitions in the scenarios.
As a first proof-of-concept the scenarios have been integrated and simulated in openPASS 0.7 at BMW. In addition the open source tool esmini can be used as described above.
The validation of the scenarios and maps provided in this repository is integrated into the CI workflow. There are two validation mechanisms implemented with GitHub actions:
- Syntactic validation of the scenarios and maps against the XSD schemas of the OpenSCENARIO 1.0 and OpenDRIVE 1.6 standards with xmllint
- Syntactic and semantic validation of the scenarios with the Standalone Checker of the OpenSCENARIO API. Integration into the CI is prepared by a GitHub action and an example.
The corresponding OpenSCENARIO Bundle has been licensed by CC-BY-SA 4.0 and is hereby made publicly available.
The XSD schema of OpenSCENARIO is used under the license of ASAM, which can be found here.
The XSD schemas of OpenDRIVE are used under the license of ASAM, which can be found here
The Standalone Checker of the OpenSCENARIO API and the corresponding GitHub action are used under the Apache 2.0 license.
BMW is not liable for the correctness and completeness of the OpenSCENARIO files. The legal text is authoritative.