Model-Driven Development of Smart Vehicles (MDDSV)
Smart vehicles that can communicate with other vehicles in real time have the potential to support more sustainable transportation. The big challenge today is to enable efficient coordination among smart vehicles to further increase the safety and efficiency of the traffic. Distributed coordination of smart vehicles is a non-trivial problem because vehicles are in a highly dynamic environment, moving at a high speed, and communicating with dynamic participants over an unreliable wireless network.
The key challenge addressed by the MDDSV project is the derivation of safe protocols for coordination between smart vehicles modelled as mobile real-time systems. The objective is to investigate model-driven techniques for the development of software to support future smart vehicles modelled as semi-autonomous, mobile, real-time systems. The work programme will develop new techniques to allow application code to be generated from high-level specifications of a mobile real-time system, including its safety constraints.
Runtime Architecture
Our approach to coordination relies on the observation that often, entities do not need to agree on their view of the world or their actions in order to ensure safety constraints, but that instead some entities can take responsibility for ensuring them independently. This requires reliable communication protocols that provide timeliness guarantees for message delivery as well as reliable vehicle’s perception of the environment, as illustrated below.
Domain specific modelling at high level
The separation of concerns is done through domain models. Vehicle experts specify configurations of different types of vehicle using domain specific models. Meanwhile, traffic experts provide environment and road regulation models.
The domain models refer to a common meta-model. In it, coordination experts design vehicle coordinating protocols with a statechart.
Model Transformation
The model transformation tool converts domain models into the same format and combines them as an intermediate model for code generation. A code generator automatically translates the intermediate model into full executable code.
Below we have some examples of code generation on simulation environment (intersection collision avoidance scenario).
People
Suzy Temate, Marco Slot, Niall O'Hara, Dawei Yang, Jan Čurn,Dan Marinescu, Mikael Asplund, Mélanie Bouroche, Siobhán Clarke, Vinny Cahill