• No se han encontrado resultados

2.2

Plexe: Platooning Extension for Veins

Plexe is an extension of Veins simulator framework, introducing several new features that enable the realistic simulation of cooperative driving and platooning applications. Based on Veins, Plexe allows to embeds into their structure all the algorithm and the manoeuvres to form control and maintain a platoon of vehicles. The main characteristics of Plexe can be listed as follow:

• is a free and open source tool;

• allow users to realize simulation of cooperative driving scenario thanks to the realistic model of wireless and road network;

• is kept constantly updated and improved, thanks to the feedback of the community;

• extensibility to different road traffic scenario or different new control model;

• realism of simulation in mixed traffic scenario where human-driven vehicles coexists with controlled one.

2.2.1 Plexe structure

Plexe further extends the interaction through the TraCI interface in order to fetch vehicles’ data from SUMO to be sent to other cars, and to be used by the platooning protocols and applications. Data received by vehicles in Plexe can be fed to the cooperative driving algorithm implemented in SUMO. Platooning beaconing protocols as well as the application logics are realized in the OMNeT++ framework, while the actuation of the applications decisions together with part of the application logics are implemented in SUMO [103]. Fig. 2.4 depicts the schematic overview of the extended simulation framework. The efforts to implement a correct platooning model unfurls in two directions: i) the implementation of platooning capabilities and elementary manoeuvres for vehicles, which mainly requires changes and extensions in SUMO; ii) the implementation of protocols to support the applications and the application logic itself in OMNeT++/Veins plus minor changes to enhance the bidirectional coupling [103]. The version of Plexe we used in this thesis work is based on Veins 2.2 and SUMO 0.17.1. This version

Figure 2.4: Plexe functional structure [103].

available on the web site1 has already embedded different car-following model which enables both longitudinal control based on open or closed-loop control of the acceleration, and a simplified transversal control (i.e., steering) to appropriately change lanes and obey platoon dynamics. In particular, this new car-following model in SUMO makes the longitudinal controllers generically called CC available and accessible via TraCI. SUMO car-following models are conceived to mimic the behaviour of drivers e.g. Intelligent Driver Model (IDM), or the Krauss car-following model. This car-following models are particularly useful to let the car join and leave the simulation. For example, the car might enter the highway using an on-ramp driven by a human [103]. Then, the automated controllers can be switched on to drive the car until the desired exit, and can be turned off (giving the control back to the driver) to exit the highway using an off-ramp. The CC model present in the version of Plexe includes standard CC/ACC and one advanced CACC, plus the engine actuation lag, while another advanced CACC is under testing and will be available soon [32]. Through the TraCI interface it is possible to access the model, changing its behaviour and retrieving different information. Parameters, desired speed and coefficients for each control algorithm are editable through the OMNeT++ configuration .ini file or by default in .NED

1

2.2 Plexe: Platooning Extension for Veins

interface (see for an exemplar case Fig. 2.5).

Figure 2.5: Example of a NED configuration file.

Obviously, when a CACC system is on, it is possible to feed it with data exchanged via IVC. Moreover, the interface includes a method to feed the controller with data about any vehicle in the platoon, because there exist controllers that can use data received from arbitrary vehicles to improve their performance as demonstrated in [32]. User can choose which of the different implemented control strategy or car-following model is driving the car, i.e., the human behavioural model, any of the CC, ACC, or CACC, or any other controlling model implemented in the simulator customized by the user. For testing and safety verification purposes, it is possible to set different behaviours for a platoon leader, e.g., a constant acceleration. Furthermore Plexe provide a basic network (extensible) stack where each car is provided with an IEEE 802.11p network interface card, a basic protocol for message dissemination, and an application layer running directly on top of the message distribution. The idea of the protocol layer is to implement the communication strategy to share the information among the vehicles in the platoon. The construction of beaconing strategy and applications (e.g. special leader manoeuvres like tip-in/tip-out or follower manoeuvres like joint/leave platoon) relies on already implemented C++ base class named BaseProtocol and BaseApp taking care of loading simulation parameters, or passing data to the CACC via TraCI, logging of statistics. In this way inherited classes can focus just on the implementation of the desired behaviour. For what concerns human-driven vehicles, it is possible to set up standard SUMO

traffic flows, which will be part of the simulation as well. Human-driven vehicles can be used to create road traffic (i.e., mobility) disturbances, or network interference by running different applications that compete for the channel with platooning cars [103].