ISAT Demonstration Scenarios
Contents
- 1 About the ISAT Demonstration Scenarios
- 2 Demo_ISAT_ADO_Control.scn
- 3 Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn
- 4 Demo_ISAT_ADO_Oncoming_Incursion.scn
- 5 Demo_ISAT_ADO_Passing_Maneuvers.scn
- 6 Demo_ISAT_ADO_Random.scn
- 7 Demo_ISAT_ADO_Relative_Create.scn
- 8 Demo_ISAT_ADO_Traffic_1.scn
- 9 Demo_ISAT_ADO_TTA_LVPO.scn
- 10 Demo_ISAT_Alert_Slow_Moving_Object.scn
- 11 Demo_ISAT_Avoid_Obstacle.scn
- 12 Demo_ISAT_Create_Elements.scn
- 13 Demo_ISAT_Data_Measures_Default_Measures.scn
- 14 Demo_ISAT_Data_Measures_Logstreams.scn
- 15 Demo_ISAT_DDOs.scn
- 16 Demo_ISAT_Display_Screen_Text.scn
- 17 Demo_ISAT_ENV_Dynamic_Fog.scn
- 18 Demo_ISAT_time_of_day.scn
- 19 Demo_ISAT_Exit_Simulation_on_Collision.scn
- 20 Demo_ISAT_Exit_Follow_Trigger_Create.scn
- 21 Demo_ISAT_Get_ObjTTC.scn
- 22 Demo_ISAT_Lane_Context_Actions.scn
About the ISAT Demonstration Scenarios
Making something happen during a simulation in a repeatable and consistent fashion for different driving styles is the essence of scenario authoring. Every thing that happens must be coordinated to some degree with the External Driver (XD). For repeatability, it is also necessary to consider how different driving styles (aggressive vs. conservative) impact how the scenario unfolds for each.
These demonstration scenarios were created to facilitate learning how to use ISAT and do scenario actions. Each scenario demonstrates a key concept or element and may contain additional elements to support the main concept. For example, all scenarios contain an introduction to the scenario for the XD and a termination trigger that will stop the simulation.
These scenarios are not intended for use as completed data collection ready scenarios. They are provided to answer the question "how can I do X Y Z..?"
These scenario elements can be integrated into your scenarios using copy-paste except where elements have been created with a Create action. For those elements it will be necessary to copy the parent element instead.
Demo_ISAT_ADO_Control.scn
This scenario demonstrates how to control an ADO:
• ADO set dial > forced velocity = 0 to keep ADO stationary. • Release the forced velocity, assign a maintain gap. • Release the maintain gap, assign a target velocity.
See also: Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn Demo_ISAT_ADO_Oncoming_Incursion.scn Demo_ISAT_ADO_TTA_LVPO.scn
Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn
This scenario demonstrates how to vary the velocity of an ADO using a Sum of Sines expression:
• Uses a forced velocity action; • Try to maintain a constant speed at 30 mph; • Notice how the speed of the ADO changes during the drive.
Note: • There is also a forced velocity Sin function available with 4 parameters See Also: Demo_ISAT_ADO_Control.scn Demo_ISAT_ADO_Oncoming_Incursion.scn Demo_ISAT_ADO_TTA_LVPO.scn
Demo_ISAT_ADO_Oncoming_Incursion.scn
This scenario demonstrates the use of a forced lane offset to cause an oncoming ADO to veer into the driver’s lane:
• Additional ambient traffic is included to provide a normal driving environment; • A following ADO will encourage slow drivers to travel the speed limit; • Because we do not want to rely on the driver travelling at the right speed, we match the event ADO velocity to the driver to ensure the event happens as planned.
See Also: Demo_ISAT_ADO_Control.scn Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn Demo_ISAT_ADO_TTA_LVPO.scn
Demo_ISAT_ADO_Passing_Maneuvers.scn
This scenario demonstrates how to implement an ADO passing maneuver on 4 lane and 2 lane roads:
• 4 lane roads can use either Set Dial > ADO > Lane Change OR Set_Button > ADO > Lane Change; • Lane change actions are not supported on 2 lane roads; - Use a lane offset to produce something similar to a passing maneuver
See also: Demo_ISAT_ADO_Control.scn
Demo_ISAT_ADO_Random.scn
This scenario demonstrates how to use the Rand() function to assign a randomized gap to an ADO:
• Typical gap assignments are fixed/constant; • Use of a randomized value introduces some inconsistency to the ADO position, which is organic and more realistic. • Requires the use of variables and expressions. • Saves the calculated randomizations to the DAQ for validation (review in ISAT).
See also: Demo_ISAT_ADO_Control.scn Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn Demo_ISAT_ADO_TTA_LVPO.scn
Demo_ISAT_ADO_Relative_Create.scn
This scenario demonstrates how to use the Relative Create flag for ADOs.
Note: Relative Create works only with negative values.
Used to create traffic behind the external driver independent of the location where the ADOs are initially placed.
See Also: Demo_ISAT_ADO_Traffic_1.scn
Demo_ISAT_ADO_Traffic_1.scn
This scenario demonstrates how to create traffic in a scenario:
• Create ADOs or copy/paste to locations within the drive; • Create ADOs with a Creation Radius (they get created as the External Driver drives the route); • Create ADOs with a trigger Create action; • Generate traffic with a Traffic Source; • Generate traffic with the Traffic Manager (or change TM sets).
Each method has advantages and disadvantages.
See Also: Demo_ISAT_ADO_Relative_Create.scn
Demo_ISAT_ADO_TTA_LVPO.scn
This scenario demonstrates the use of Time to Arrival trigger to create a crashpossible event:
• The scenario contains some distracting elements; • The event ADO behavior is highly dependent on the speed of the XD. - If the driver is going too fast it may cause the event ADO to disappear • A time trigger with creation radius acts as a proximity trigger to end the drive, in case the driver steers out of the crash area.
See Also: Demo_ISAT_ADO_Control.scn Demo_ISAT_ADO_Forced_Velocity_Sum_of_Sines.scn Demo_ISAT_ADO_Oncoming_Incursion.scn
Demo_ISAT_Alert_Slow_Moving_Object.scn
This scenario demonstrates how to implement a proximity alert to warn the driver of a slow moving vehicle ahead:
• Speed monitor to ensure the driver is travelling at a velocity where the event can happen • Alarm triggers when proximity threshold is achieved
Because there is no good way to tell in advance where the event happens, the end of drive happens following the alert.
Demo_ISAT_Avoid_Obstacle.scn
This demo scenario demonstrates a collision avoidance event using ambient traffic and a DDO obstacle:
• The event requires some setup to position the event vehicles • The obstacle is a DDO (desk) contained within a van model that has operable rear doors which swing open • The DDO transitions from a coupled object to a free motion object
Demo_ISAT_Create_Elements.scn
This scenario demonstrates how to create scenario elements during a drive with the Create Element action.
• Remember all triggers share the same actions; thus, any trigger may contain a create action. • Only 1 create action is permitted per trigger.
Demo_ISAT_Data_Measures_Default_Measures.scn
This scenario demonstrates how to use the miniSim Default Measures in a scenario to produce a valid report for the drive:
• Must follow the write to cell procedure for events: - initialize event status and event number to zero at scenario start - change SCC_EventStatus from 0 to 1 for the event, and close to 0 after the event - change SCC_EventNumber throughout the drive (incremental count starting with 1, 2, 3, etc.) - produces a report.txt for each drive • The drive report.txt for each drive is located in the DAQ folder location.
Note: if proper write to cell steps aren’t followed, all measures will be empty in the report.
Demo_ISAT_Data_Measures_Logstreams.scn
This scenario demonstrates the use of Log Streams for documenting significant locations or events in your DAQ file.
• Best practice: initialize all Logstreams to some value at the start. • Events may be numbered, or subdivided using the same logstream. This demo uses LogStream 1.
• The scenario author and data reduction scientist must agree on what measures are important to encode.
Demo_ISAT_DDOs.scn
This scenario demonstrates different ways to use DDOs and DDDOs. Both types typically begin moving when the scenario starts, unless you assign a creation radius or control the DDO speed.
1. DDO: simple path follower.
2. DDDO (dependent path follower): includes a target path node and a target point. The DDDO movement is constrained so when the specified object is at the target point, the DDDO will be at the target path node irrespective of the speed assigned to each node. DDO and DDDOs can be pedestrians, animals or vehicles.
Demo_ISAT_Display_Screen_Text.scn
This scenario demonstrates how to display text messages to the screen.
Text font, color and locations are specified at: NadsMiniSim_x.x\bin.x64\config\scenario_text.xml
*Be sure to maintain a backup if you edit this file!
See Also: Demo_ISAT_Monitor_Driver_Speed.scn Demo_ISAT_Show_Driver_Speed.scn
Demo_ISAT_ENV_Dynamic_Fog.scn
This scenario demonstrates how to gradually apply fog and the difference between fog and visibility. The usual method of adding weather effects to a scenario is by defining a region of influence which means the effect is applied abruptly to the scene at the region boundaries (on/off).
• Fog and Visibility are Weather Effects - Insert >> Environment Conditions • Fog density is managed with 3 variables: - FogDistance, MaximumFog, FogDensity • An example of reduced Visibility is included
Demo_ISAT_time_of_day.scn
This scenario demonstrates how to change the time of day:
• Variables are used to track day-night cycles • Time settings (Hour) were chosen arbitrarily - Small time differences will not affect environment; ie. 07:10 – 07:30 • A parked F150 ADO in the scenario has auto-headlights enabled
NOTE: Headlight control from scenario requires changes to the miniSim hardware.xml configuration file – they do not automatically turn on at night
Demo_ISAT_Exit_Simulation_on_Collision.scn
This scenario demonstrates how to terminate simulation if a collision happens during a drive. Collisions may occur with ADOs, DDOs, DDDOs and static objects that are present in the scene.
Note: It is possible to configure miniSim or edit the scenario object list file (SOL2.txt) to disable collisions either globally or for specific objects. In that event this scenario will not terminate due to a collision.
Demo_ISAT_Exit_Follow_Trigger_Create.scn
This scenario demonstrates use of the Follow Trigger:
• The follow trigger can activate between any two dynamic objects; • Most commonly uses the XD for one of the two objects (leader or follower); • Trigger instigator (predicate) can be either; • The follow trigger action stack is processed when the trigger conditions have been met; • When the actions are executed an oncoming Ambulance ADO is created.
Demo_ISAT_Get_ObjTTC.scn
This scenario demonstrates how to get a Time To Collision for dynamic and stationary objects (DDOs and ADOs):
• Any time delays in the action stack collecting data and reporting it will create a variance between what you measure in ISAT and what gets reported in the DAQ; • Cells and variables are used to get the information for TTC and distance; • Variables are written to SCC_Custom1 – 3 for distance, TTC and the raw distance value reported by GetObjDistPow2; • 3 events are shown to illustrate re-use of the same variables throughout for the target object (DDO dynamic, DDO stationary, ADO stationary); • Logstreams are used for event numbering and distances to each object; • If you re-use the same object name, you must remove the previous object – only 1 should be present in the simulation at any time.
NOTE: Static objects cannot be created in realtime with the Create Element action, but they can be created as DDOs. They default to their first visual option; change with a set switch action.
Demo_ISAT_Lane_Context_Actions.scn
This scenario demonstrates how to limit actions to a specific lane.
• Lane filter can only be used with roadpad triggers. • Useful for situational cases: if the driver is in the correct lane, then they will not receive alert. If the driver is in the wrong lane, then they will. • Also useful for ADO control at the lane level.
See also: Demo_ISAT_ADO_Control.scn