Generate Euro NCAP Scenarios for Safety Assessment of Pedestrians, Motorcyclists, and Bicyclists
This example shows how to generate scenario variants for the safety assessment of vulnerable road users. The examples uses the European New Car Assessment Programme (Euro NCAP®) Automatic Emergency Braking (AEB) and Lane Support System (LSS) scenarios, which includes vulnerable road users such as pedestrians, motorcyclists, and bicyclists.
In the realm of automotive safety, you must ensure the protection of Vulnerable Road Users (VRUs) such as pedestrians, motorcyclists, and bicyclists. These VRUs are susceptible to severe injuries in traffic accidents, often due to factors such as driver distraction or misjudgment. To improve the safety of VRUs, the Euro NCAP has established testing protocols and scenarios for safety features such as LSS and AEB systems. This example demonstrates how to generate LSS and AEB scenario variants, for the safety assessment of VRUs, that adhere to the Euro NCAP standards, to enhance road safety and mitigate accident risks.
In this example, you:
Set up RoadRunner.
Create a seed scenario specific to the Euro NCAP test standard.
Create variation parameters to generate scenario variants.
Generate variants for the seed scenario.
Visualize a generated scenario variant in RoadRunner.
Using this example, you can generate variants for various types of Euro NCAP AEB test scenarios containing VRU collisions, such as car-to-pedestrian, car-to-motorcyclist, and car-to-bicyclist. You can also generate car-to-motorcyclist LSS scenarios.
Set up RoadRunner
This example requires the Automated Driving Toolbox™ Test Suite for Euro NCAP® Protocols support package. Check if the support package is installed.
helperCheckSupportPackageInstalled
Start the RoadRunner application interactively by using the roadrunnerSetup
function. The function opens a dialog box in which you specify the project folder and installation folder to use when opening RoadRunner. The function returns a roadrunner
object, rrApp
, that enables you to perform common tasks in the RoadRunner application, such as opening, closing, and saving scenes and projects.
rrApp = roadrunnerSetup;
After setting up the required paths, close RoadRunner.
close(rrApp)
Create Seed Scenario
In this example, you create a seed scenario for a Vulnerable Road User Automatic Emergency Braking Turning Car-to-Motorcyclist Front turn across path (CMFtap) test. In this scenario, the ego vehicle turns across the path of an oncoming motorcyclist that travels at a constant speed, resulting in a collision between the front side of the ego vehicle and the front side of the motorcyclist.
Specify the test type of AEB test scenario and generate a scenario descriptor for it by using the ncapScenario
function.
Note: You can specify other Euro NCAP test scenarios that contains pedestrians, bicyclists, and motorcyclists. For more information on the supported scenarios, see the Further Exploration section.
testType = "VRU AEB Turning CMFtap";
seedScenarioDescriptor = ncapScenario(testType);
Vary Parameters to Generate Scenario Variants
Extract the Euro NCAP variation parameters for your AEB test scenario by using the helperGetNCAPVariationProperties
helper function. The helper function returns an array of variationProperties
objects that contain the property variations of the seed scenario.
variationProperties = helperGetNCAPVariationProperties(testType);
Generate Scenario Variants
Generate an array of variant ScenarioDescriptor
objects by using the generateVariants
function.
[variantDescriptors,variantInfo] = generateVariants(seedScenarioDescriptor,variationProperties);
Visualize in RoadRunner
Start RoadRunner by using the roadrunner
function. The function opens RoadRunner using the installation folder and project folder that you specified in the Set up RoadRunner section.
rrApp = roadrunner;
Create a RoadRunner ScenarioSimulation
object from your scenario descriptor object for the first generated variant by using the getScenario
function. In this variant, the ego and target vehicles travel with a speed of 10 km/h and 30 km/h respectively.
Note: You can visualize the seed scenario in RoadRunner by using seedScenarioDescriptor
as an input to the getScenario
function. You can also visualize other variants by specifying a variantNumber
value from 1 to the length of variantDescriptors
. For this example, specify a value in the range 1 to 9.
variantNumber = 1;
rrSim = getScenario(variantDescriptors(variantNumber),Simulator="RoadRunner",SimulatorInstance=rrApp);
Connection status: 1 Connected to RoadRunner Scenario server on localhost:60729, with client id {06759a58-76c4-4a7c-a2c1-59d2bea0c5dd}
To view the scenario from the ego vehicle view or chase view, in the RoadRunner Simulation pane, in the Camera section, set Camera View to Follow
or Front
. Note that the default value of the Actor attribute is VUT
, which is the ego vehicle for the scenario in this example.
set(rrSim,SimulationCommand="Start") while strcmp(get(rrSim,"SimulationStatus"),"Running") pause(1) end
This figure shows your first variant in RoadRunner, which contains an actor and a motorcyclist.
Stop and close the RoadRunner simulation.
close(rrApp)
Further Exploration
In this example, you have explored how to generate scenario variants for the Euro NCAP "VRU AEB Turning CMFtap"
scenario.
To generate variants for other VRU AEB scenarios, you must specify testType
as one of these ncapTestName
values, listed in the table in the Euro NCAP Test Scenario Information section of the ncapScenario
function.
Car-to-Pedestrian Collision Scenarios — For example,
"VRU AEB Crossing CPFA"
,"VRU AEB Crossing CPNA"
, or"VRU AEB Crossing CPNCO"
.Car-to-Bicyclist Collision Scenarios — For example,
"VRU AEB Crossing CBFA"
,"VRU AEB Crossing CBNA"
, or"VRU AEB Crossing CBNAO"
.Car-to-Motorcyclist Collision Scenarios — For example,
"VRU AEB Longitudinal CMRs"
,"VRU AEB Longitudinal CMRb"
, or"VRU AEB Turning CMFtap"
.Car-to-Motorcyclist Lane Support Systems Scenarios — For example,
"VRU LSS CM Overtaking vehicle intentional"
,"VRU LSS CM Overtaking vehicle unintentional"
,"VRU LSS CM Oncoming vehicle"
.
Then, follow the rest of the procedure in this example to generate a seed scenario and scenario variants. These seed scenarios are in accordance with the Euro NCAP test protocol standards.
For example, to generate a seed scenario descriptor and variations for the VRU AEB Crossing CPNCO scenario, modify the code to specify testType
as:
testType = "VRU AEB Crossing CPNCO";
In this example, you have generated variants for Euro NCAP AEB Vulnerable Road Users tests. To generate variants for the Euro NCAP Safety Assist AEB Car-to-Car tests, see the Generate Variants for Testing AEB Car-to-Car Scenarios example.
References
[1] European New Car Assessment Programme (Euro NCAP). Test Protocol – AEB/LSS VRU Systems. Version 4.5.1. Euro NCAP, February 2024. https://www.euroncap.com/media/80156/euro-ncap-aeb-lss-vru-test-protocol-v451.pdf.
See Also
Functions
Related Topics
- Get Started with Euro NCAP Test Suite
- Generate Variants for Testing AEB Car-to-Car Scenarios
- Generate RoadRunner Scenario Variants by Modifying Actor Assets
- Generate Scenario Variants for Testing AEB Pedestrian Systems
- Generate Scenario Variants for Testing ACC Systems
- Generate Variants of ACC Target Cut-In Scenario