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.

Mission Control, MC

Example of a planned path.The MC subsystem has two main objectives, to create maps and to plan a path in a chosen map.

  • The maps made are represented as nodes, where each node contains a position, an id, a road type and a list of all connecting nodes.
  • The path planner takes a map, the current position of the car and one or more goal points as arguments, and by using the A*-algorithm it provides the optimal path from the start position to the last goal position. Notable is that this is a path and not a route, the difference being that the car should be able to follow a path without violating its mechanical boundaries or traffic regulations, while this is not a requirement for a route.

Vehicle Perception, VP

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.

Behavioural Decision Making, BDM

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.

Motion Planning, MP

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

Vehicle Control & Modeling, VC&M

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.

  • Fully physical operation: Physical cars driving on a road.
  • Fully simulated: No physical vehicles are used.
  • Hybrid scenario: A combination of the two above. Physical cars are running along simulated vehicles.

Graphical User Interface, GUI

Example of a planned path.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.