Monthly Archives: May 2016

Autonomous Vehicle Platooning — Demo

An automotive platoon, enabling road vehicles to travel as a group, is led by a vehicle which is driven by a professional driver. We employ a hybrid agent architecture for development of automotive platoon.  Our agent-based development of automotive platoon where the discrete decision-making component of the system is separated from the continuous control system as sketched below:


Real-time continuous control of the vehicle is managed by feedback controllers, implemented in MATLAB, and observing the environment through its sensory input. This is called the Physical Engine. The Physical Engine, in turn, communicates with an Abstraction Agent that extracts discrete information from streams of continuous data and passes this on a Decision-Making Agent. The Decision-Making Agent is a rational agent which directs the Physical Engine by passing it instructions through the Abstraction Agent. Instructions from the Decision-Making Agent to the Abstraction Agent are interpreted into meaningful instructions for Physical Engine.

To provide the complex environment necessary for effective simulation and testing, we use an automotive simulator, TORCS, to implement the environment component of the architecture. The Physical Engine is implemented in MATLAB, while both Abstraction and Decision-Making Agents are programmed in an agent-based programming language called GWENDOLEN. . An interface between TORCS and MATLAB/Simulink has been developed that provides a means to control vehicles from MATLAB and Simulink, which can be found here.

The full model can be found at:

A video of our agent-based development of autonomous vehicle platooning can be found at: