Each cars system consists of several subsystems. A description of the most vital parts of each subsystem will be described below. For more information about any subsystem, see Technical Report.
The MC subsystem has two main objectives, to create maps and to plan a path in a chosen map.
The VP subsystem is in charge of handling everything the cars are able to perceive. The environment perception is received using ROS communication. By having a standalone subsystem at each car to handle the perceived data the whole system becomes more modular and new sensors can easily be added to the system.
Functional communication between the car and other cars is also handled by the subsystem. The cars should send their position, heading, velocity and current trajectory to other cars. Furthermore, identifying static and dynamic objects using the LIDAR was a second order priority for the subsystem.
The BDM subsystem is responsible for making decisions in the different traffic scenarios depending on other traffic participants and its current goal.
The BDM subsystem is implemented as a hierarchy of state machines to allow for a dynamic approach to identifying scenarios. To simplify the implementation the structure was split up into a set of classes illustrated below. The BDM class is the main class which actually initiates the ROS node and handles all the communication with other subsystems.
The MP subsystem will be responsible for computing a safe, feasible trajectory from the vehicle’s state to a goal state. What the goal state is may vary, e.g.,a point further on in the current lane, a stop line at the upcoming intersection or a point on a new road we would like to turn on to.
The trajectory should consist of a series of coordinates , x and y, together with a timestamp belonging to each coordinate. With the time stamps of each position in the trajectory, velocities and accelerations are provided implicitly and thus a low level plan forthe vehicle motion is available
The Vehicle Control subsystem is responsible for the motion control of the car and following of a trajectory. This is needed for the car to be able to drive in a road network and perform manoeuvres of the predefined scenarios, which are platooning and roundabout driving.
The purpose of the simulator is twofold. Firstly, it enables system and algorithm behavioural testing. Secondly, it enables examination of situations with a greater number of agents without the need for additional hardware. This means that the entire system is able to run on three different layers.
A GUI is convenient in order to interact and communicate with the car from a laptop. The GUI is supposed to give information about the system state and decisions to the user and sometimes receive user input to change or tweak the behaviour of the car.