Skip to content

Commit 76f2ecb

Browse files
implemented feedback
1 parent 7be01b9 commit 76f2ecb

2 files changed

Lines changed: 51 additions & 21 deletions

File tree

paper.md

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,33 @@ bibliography: paper.bib
3838

3939
# Statement of Need
4040

41-
Verifying Autonomous Driving Systems (ADS) is a critical step before they can be deployed.
42-
However, relying only on real-world testing is too expensive, inefficient, and potentially dangerous.
43-
Consequently, simulation-based testing has become essential, allowing researchers to safely test driving agents against critical situations at scale.
41+
Verifying Autonomous Driving Systems (ADS) is a critical step before they can be deployed.
42+
However, relying only on real-world testing is too expensive, inefficient, and potentially dangerous.
43+
Consequently, simulation-based testing has become essential, allowing researchers to safely test driving agents against critical situations at scale.
4444
Among these tools, CARLA [@carla_sim] has become the de-facto standard in the research community due to its rich ecosystem of open-source tools, benchmarks, and documentation.
4545

46-
Currently, the standard for evaluating ADS in CARLA is the CARLA Leaderboard and its engine, Scenario Runner (SR) [@carla_scenario_runner_2025].
47-
This framework is typically used to test "black-box" driving agents, such as those based on Vision Language Models or Reinforcement Learning (DS: add refs here).
48-
By running a set of predefined, challenging driving scenarios, researchers can systematically assess agent performance using common metrics like driving score, infractions, and route completion.
49-
However, applying this testing framework to industry-grade ADS, such as Autoware [@kato2018autoware] or Apollo [@apollo], remains difficult.
46+
Currently, the standard for evaluating ADS in CARLA is the CARLA Leaderboard and its engine, Scenario Runner (SR) [@carla_scenario_runner_2025].
47+
This framework is typically used to test "black-box" driving agents, such as those based on Vision Language Models or Reinforcement Learning (DS: add refs here).
48+
By running a set of predefined, challenging driving scenarios, researchers can systematically assess agent performance using common metrics like driving score, infractions, and route completion.
49+
However, applying this testing framework to industry-grade ADS, such as Autoware [@kato2018autoware] or Apollo [@apollo], remains difficult.
5050
Although communication bridges exist between CARLA and these systems [@guardstrikelab_2023_carla; @carlaautowarebridge], they lack native support for scenario execution engines, which limits their utility for scenario-based testing.
5151

52-
This gap has created a significant bottleneck for the research community.
53-
Previously, researchers developing scenario generation algorithms mainly relied on combining Apollo with the LGSVL simulator [@9294422].
54-
However, LGSVL is now outdated, with official support ending in January 2022.
55-
This leaves many researchers without a suitable industry-grade "subject" for evaluating their algorithms.
56-
While recent tools like PCLA [@tehrani2025pcla] attempt to simplify deploying Autoware (and other ADS implementations) into CARLA, they focus primarily on simplifying the ADS implementations and abstracting the setup process across different CARLA versions.
52+
This gap has created a significant bottleneck for the research community.
53+
Previously, researchers developing scenario generation algorithms mainly relied on combining Apollo with the LGSVL simulator [@9294422].
54+
However, LGSVL is now outdated, with official support ending in January 2022.
55+
This leaves many researchers without a suitable industry-grade "subject" for evaluating their algorithms.
56+
While recent tools like PCLA [@tehrani2025pcla] attempt to simplify deploying Autoware (and other ADS implementations) into CARLA, they focus primarily on simplifying the ADS implementations and abstracting the setup process across different CARLA versions.
5757
They lack the deep integration required between the agent and simulator to execute complex, route-based scenarios.
5858

59-
`CAWSR` aims to bridge this gap by enabling the evaluation of Autoware in complex driving scenarios within CARLA.
60-
By building on the established CARLA platform, this work provides a modern replacement for the outdated Apollo/LGSVL workflow.
59+
`CAWSR` aims to bridge this gap by enabling the evaluation of Autoware in complex driving scenarios within CARLA.
60+
By building on the established CARLA platform, this work provides a modern replacement for the outdated Apollo/LGSVL workflow.
6161
It also allows Autoware to be directly compared with state-of-the-art research agents on the CARLA Leaderboard.
6262

63-
Effective ADS verification requires the ability to systematically explore the operational design domain.
64-
To support this, `CAWSR` provides a flexible interface for algorithmic scenario generation.
63+
Effective ADS verification requires the ability to systematically explore the operational design domain.
64+
To support this, `CAWSR` provides a flexible interface for algorithmic scenario generation.
6565
This facilitates a wide range of verification strategies based on common metrics, such as the CARLA Leaderboard’s driving score [@carla_leaderboard].
6666

67-
Lastly, it is worth noting that simulators can often introduce unintended nondeterminism, which leads to inconsistent test results [@9793395; @osikowicz2025empirically].
67+
Lastly, it is worth noting that simulators can often introduce unintended nondeterminism, which leads to inconsistent test results [@9793395; @osikowicz2025empirically].
6868
Therefore, `CAWSR` is designed to minimise such nondeterminism throughout the evaluation pipeline.
6969

7070

@@ -79,13 +79,43 @@ The evaluation pipeline is engineered to be fully synchronous, minimising uninte
7979

8080
![Internal component diagram of CAWSR.](./docs/resources/component_diagram.pdf)
8181

82-
Figure 1 shows the overall architecture of `CAWSR`.
83-
(**DS**: Can we explain a bit more about the components, especially JSON parser, ScenarioManager, Agent, CarlaClient, and CARLA-Bridge in terms of their roles?)
82+
Figure 1 shows the overall architecture of `CAWSR`.
83+
84+
(**David**: This is the first approach, although i feels a bit short and doesn't elaborate much on each component and how they interact together.)
85+
86+
| Component | Function |
87+
|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
88+
| CarlaClient | A native class of the CARLA PythonAPI, facilitating interaction with the simulator. |
89+
| JSON parser | A module which converts the *scenario_defintion* into XML behaviour trees, used for scenrario execution by the ScenarioManager. |
90+
| ScenarioManager | Scenario Runner module which handles the execution of scenarios through behaviour trees. |
91+
| CarlaBridge | This module handles the transformation of sensor data from CARLA to ROS. At each step, data is sent to Autoware, responding with a control command that is applied to the ego vehicle in simulation. |
92+
| Agent | Monitors the internal state of key Autoware modules, handling the communication between CAWSR and Autoware. Responsible for sending over route information during initialisation and executing the CarlaBridge at each step. |
93+
: Function of the key modules in CAWSR.
94+
95+
(**David**: Second approach, more text and less readability than the first, but offers significanlty more detail about how the framework functions and how the modules interact.)
96+
97+
Each component of CAWSR plays a fundamental role in the overall architecture of the framework. The **CarlaClient** is a native class of the CARLA PythonAPI. Accepting a *host* IP and *port*, it creates a TCP connection to the simulator and allows interaction with its interval server, enabling CAWSR modules to extract information and spawn entities. This forms the basis of CAWSR and the single point of communication between the framework and CARLA.
98+
99+
The **JSON parser** converts the JSON *scenario_definition* into a behaviour tree (BT), extracting information about the *route* and events that trigger along it. The fundamental elements of the behaviour trees are assembled from *Atomic Behaviours* and *Atomic Conditions*, introduced by Scenario Runner. These represent individual behaviours and variables within CARLA, such as spawning a pedestrian, serving as the building blocks of scenarios.
100+
101+
**ScenarioManager** handles the initial setup and execution loop, using the CarlaClient to spawn the relevant scenario entities. At each step, the scenario behaviour tree is executed, calculating updated states for each actor and triggering relevant conditions. Through the CarlaClient, a single *tick* (step) is sent to CARLA, incrementing its internal clock and generating a new snapshot of the simulation. This snapshot is sent to the **Agent** module, monitoring the internal state of Autoware modules and sending information about the route. During initialisation, the agent instantiates a connection with Autoware through ROS. Once this connection is established, at each execution step, the **CarlaBridge** extracts data through the snapshot. Sensor data is transformed into Autoware's coordinate system and published to the relevant modules. Once processed, Autoware updates its internal state and responds with a control command, applying it to the ego vehicle in simulation.
102+
103+
The internal loop within ScenarioManager continues executing until one of the following termination conditions is met, as defined by the CARLA Leaderboard evaluation criteria [@carla_leaderboard], as shown in Table 2.
104+
105+
| Criteria | Description |
106+
|--------------------|------------------------------------------------------------|
107+
| Route_Completion | Agent reached the end of the route. |
108+
| Actor_Blocked | Agent is blocked, not moving for 180s. |
109+
| Simulation_Timeout | No client-server communication can be established for 30s. |
110+
: Termination Criteria of each scenario within CAWSR.
111+
112+
(**David**: If we go with the second approach, is it worth adding a paragraph on how we calculate the driving score for use with the algorithm mode? It follows the same principles as the termination criteria, also based on the CARLA leaderboard)
113+
84114

85115
![Scenario definition domain model.](./docs/resources/scenario_domain.pdf)
86116

87-
To facilitate development, we introduce a new domain model for the definition of route-based scenarios within CARLA, described in Figure 2, alongside a `JSON` implementation.
88-
This model is based on the format introduced by Scenario Runner, facilitating support between both frameworks.
117+
To facilitate development, we introduce a new domain model for the definition of route-based scenarios within CARLA, described in Figure 3, alongside a `JSON` implementation.
118+
This model is based on the format introduced by Scenario Runner, facilitating support between both frameworks.
89119

90120
# Conclusion
91121

paper.pdf

5.07 KB
Binary file not shown.

0 commit comments

Comments
 (0)