michele-segata / plexe

Repository for Plexe
GNU General Public License v2.0
49 stars 39 forks source link

Changing the Vehicle Type #42

Open Sid9993 opened 7 months ago

Sid9993 commented 7 months ago

Hi Michele, Can u just state how can we change the type of vehicles(based on length, speed etc.) in a platoon such that it consists of different types of vehicles and on which file should we modify the code?

michele-segata commented 7 months ago

You have to first define different SUMO vehicle types here. Simply copy-paste vtypeauto, give it another name (e.g., vtypetruck) and change its parameters. Then you will have to modify a traffic manager to inject this type of traffic. As you can see, the traffic manager for the platooning examples (PlatoonsTrafficManager) takes the vehicle type name as a parameter here, which means it only injects one type of vehicle presetting it in this point of the code. You would need to load a list of vehicle types and then change the vehicle type according to your rule before injecting the vehicle in the simulation, so here.

Sid9993 commented 7 months ago

You have to first define different SUMO vehicle types here. Simply copy-paste vtypeauto, give it another name (e.g., vtypetruck) and change its parameters. Then you will have to modify a traffic manager to inject this type of traffic. As you can see, the traffic manager for the platooning examples (PlatoonsTrafficManager) takes the vehicle type name as a parameter here, which means it only injects one type of vehicle presetting it in this point of the code. You would need to load a list of vehicle types and then change the vehicle type according to your rule before injecting the vehicle in the simulation, so here.

We created a new vehicle type in the freeway.rou.xml file but in the PlatoonTrafficManager.cc where should we load this newly defined vehicle type and what changes to make in that file else where? can u explain step by step?

michele-segata commented 7 months ago

I simply cannot explain you step by step what to do, that would basically mean implementing what you need for you and I do not have the material time. If I would do it for you I would need to do that for everyone else asking in this issue tracker. You should get familiar with the code and understand its behavior first, and then modify that to your purposes. I can give you hints, I can't implement stuffs.