Skip to content

Scenario Selection in conode

Summary

With conode you can quickly find any scenarios you need from within the knowledge graph, and store them in a “pool” ready for upcoming simulation tests. In this workflow, we will follow a few example user stories:

Example 1: “We would like to test our stack on scenarios which take place at a t-intersection and involve pedestrian hazards”

Example 2: “We would like to see how our stack responds in head-on collisions involving a high speed hazard”

Example 3: “We would like a set of scenarios that take place at a specific junction on our map”


Getting Started

In all three examples introduced above, we will begin our search using the Taxonomy and Summary Views. Navigate to these views by typing into the view search bar in the top right-hand corner of conode, as in Figure 1 below.

Image title

Figure 1: View Search Bar

In the Taxonomy view, you should see a horizontal layout of the dRISK Taxonomy. We will use annotations from this taxonomy to help us narrow down the search.

The Summary View will contain the API Key, sessions, and pools header nodes, along with any number of successors to these nodes, depending on the number of tests run so far. For a description and example use of Summary Views please see the Pools and Sessions Overview.

Image title

Figure 2: Taxonomy and Summary Views

The scenarios we will be choosing from in this scenario selection workflow will be the successors of the dRISK scenarios pool node (highlighted in Figure 2 above). This pool contains all scenarios dRISK has made available to this knowledge graph instance. However, do remember you can carry out this workflow with any set of scenarios, including those from internal or other external data sources.

To access the full set of scenarios we will be choosing from, follow the following: 1. Create a new view called “All Scenarios”

Image title

  1. Copy and paste the dRISK scenarios pool node into this new view

    Image title

  2. Right-click the dRISK scenarios pool node, then Get, then successors (or press ⌘g as a shortcut)

    Image title

  3. Refresh the view to ensure all nodes have loaded in

    Image title

We can now close the Summary View, as we will only need the "Taxonomy" and "All Scenarios" views to find our desired scenario sets.

Image title
Figure 3: Taxonomy and All Scenarios views, from where the scenario selection process can begin>


Example 1: “We would like to test our stack on scenarios which take place at a T intersection,and involve pedestrian hazards”

Right-click on the Taxonomy view background, select Search, then type “t_intersection” into the search bar and press enter. The node will then highlight blue, as seen in Figure 4 below. Alternatively, you could find the annotation by navigating down the Taxonomy tree until you come across the Junction Types annotations.

1 2 3

Figure 4: Searching for the t-intersection annotation in the Taxonomy view.

Use the same steps to locate the “pedestrian_hazard” annotation and then copy and paste these nodes into the All Scenarios view.

Image title

Figure 5: The t_intersection and pedestrian_hazard annotations pasted into the All Scenarios view

To select the scenarios which take place at a t-intersection with a pedestrian hazard, we now simply need to find the nodes which connect to both of these annotations. Highlight the pedestrian_hazard and t_intersection annotations, right click, choose Select, then Successors Intersection. The scenario nodes of interest will now be highlighted, so drag them away (in Figure 6, upwards) of the rest of the scenarios so we can easily identify them.

1 1 2

Figure 6: Identify the scenarios which connect to both the t_intersection, and pedestrian_hazard annotations using the Select + Successors Intersections buttons from the context menu.

The final step is to collect these scenarios under a pool header node we will be able to find again. In the “All Scenarios” view create a new node, rename it “pedestrian t-intersection scenario pool” using the Node(s) then Properties options in the context menu, and connect it to all our scenarios of interest.

1 2 2

Figure 7: Create a new header node for the scenario subset we have found. Rename it using the Node properties section of the context menu, then connect it to the scenario subset.

Send the pedestrian t-intersection scenario pool pool node to the Summary View, and connect to the pool header node for safe keeping. You are now ready to run simulation tests on this scenario type!


Example 2: “We would like to see how our stack responds in head-on collisions involving a high speed hazard”

As in Example 1, click on the Taxonomy view background, select Search, then type head_on into the search bar and press enter. The annotation will then highlight blue, as seen in Figure 8 below, and can be copied & pasted into the "All Scenarios" view.

1 2 3

Figure 8: Searching for the head_on annotation in the Taxonomy view.

By selecting the successors of the head_on annotation node, and dragging those scenarios away from the main ring, we can clearly make out which scenarios involve a head on collision.

1 2 3

Figure 9: Highlight and move the successors of the head_on annotation to identify which scenarios involve that collision type.

We now want to filter these by which include a hazard traveling at a high speed at the time of collision. To do this, we will create a temporary view “Head-On dRISK Scenarios” into which we will copy & paste just the scenarios which connect to the head_on header.

Image title

Figure 10: Create a new view and paste in the head on scenarios.

We now want to order these scenarios by the speed of the hazard entity. To do this, locate the hazard_speed_at_poi annotation in the Taxonomy view using the same steps as shown in Figure 8, and send this annotation to our “Head-On dRISK Scenarios” view as the x-axis node (Figure 11). Note that once you have sent the node over, you might need to refresh the view for the changes in node position to become clear.

1 1 2

Figure 11: By distributing scenarios according to the metric hazard_speed_at_poi we can easily identify and select those scenarios with the largest values, and hence highest speed hazard entity.

With the scenario nodes now distributed according to the values of hazard_speed_at_poi, we can highlight all those which are on the right-hand side of the view and add them to a new header node (LHS Figure 12). The successors of this head-on collisions with a high-speed hazard node are our scenarios of interest.

Add the head-on collisions with a high-speed hazard node to the Summary View and connect up to the pool header and you are done!

Image title

Figure 12: Our two new pool nodes (from Example 1 & 2 scenario selection) connected up to the pool header node

Example 3: “We would like a set of scenarios that take place at a specific junction on our map”

To identify all the scenarios which take place on the junction of interest - in this example we will take the central crossroad located in Herrenberg road network of DriveSim - we first need to lay out our scenarios in a spatial view. To achieve this, highlight all the scenarios in the "All Scenarios view", right click, then select Tools then Spatial View. A new view will open with the selected scenarios distributed across their road network. As the example scenario set we are using here all take place on the Herrenberg road network, that is the road network we see in the new view (RHS view of Figure 13).

Image title

Figure 13: Button sequence which will open the geospatial layout of selected scenarios.

From here, simply navigate around the spatial view until you identify the junction of interest and highlight all the nodes in this region. Doing so will cause the relevant scenario nodes to highlight in our LHS view at the same time. By dragging the nodes away from the rest, we have easily and quickly identified the scenarios that take place at our junction of interest; these are the scenarios we wish to test in simulation first!

Image title

Figure 14: Highlighting the nodes around your junction of interest in the spatial view will allow you to grab them in your All Scenarios view

Once again, to store these scenarios we create a new header node, re-label it “scenarios at junction of interest”, and add edges from the header node to all our identified scenarios of interest. Send this header node to the Summary View and connect it to the pool header node to store for future use.

Image title

Figure 15: Add the scenarios which take place at the junction of interest to a new pool header node.

Last update: 2024-10-31