Plexe

The Platooning Extension for Veins.

FAQ

1 2
cd ~/src/plexe-veins find | grep '\.cc$\|\.h$' | xargs bash format-code.sh

Please also remember that the use of tabs in any file is forbidden. You can use the following code to substitute all tabs with 4 spaces in your files:

1 2
cd ~/src/plexe-veins find | grep '\.ned$\|\.cc$\|\.h$\|\.R$\|\.py$\|\.ini$\|\.xml$' | xargs sed -i -s 's/\t/ /g'
1 2 3 4 5 6 7
cd ~/src/plexe-veins make -j <number of cores of your PC> MODE=debug cd ~/src/plexe-sumo mkdir build-debug cd build-debug cmake -DCMAKE_BUILD_TYPE=Debug .. make -j <number of cores of your PC>

Then you can debug Plexe-Veins or Plexe-SUMO in two ways. The first is through the IDE. For Plexe-Veins, if you imported the source project inside the OMNeT++ IDE, you can create a new debug configuration by clicking on Run, Debug configurations.... Click on OMNeT++ Simulation and the on New launch configuration. Given a new name to the configuration and set the working directory to the folder where your omnetpp.ini is (e.g., /veins/examples/platooning), choose the configuration (e.g., Sinusoidal) and the run number (e.g., 2). Click on Cmdenv, then on Apply, then on Debug. This will start your simulation in debug mode in the GUI where you can set breakpoints, step into the code, look at variables’ value, etc. For Plexe-SUMO, you need to create a project inside the Eclipse CDT IDE, and then create a new debug configuration as in the OMNeT++ IDE. This time, however, you need to choose a C/C++ Attach to Application configuration because Plexe-SUMO is launched by Plexe-Veins automatically and not by the Eclipse IDE. Alternatively, you can import your code into other IDEs, such as Jetbrains CLion or Microsoft Visual Studio Code, and attach to the running SUMO process as with the Eclipse IDE.

The second way is from command line. For Plexe-Veins simply launch your simulation using ./debug instead of ./run. This will launch gdb that can be used to perform debugging. For Plexe-SUMO you will need to launch gdb (or lldb) from your terminal and then attach to the PID of the Plexe-SUMO instance.

Old FAQs (version 2.0)

1 2
cd ~/src/plexe-sumo ln -s sumo/bin bin

The choice is up to you.

1 2 3 4 5 6
cd ~/src/plexe-veins make -j <number of cores of your PC> MODE=debug cd ~/src/plexe-sumo ./configure --enable-debug make clean make -j <number of cores of your PC>

Then you can debug Plexe-Veins or Plexe-SUMO in two ways. The first is through the IDE. For Plexe-Veins, if you imported the source project inside the OMNeT++ IDE, you can create a new debug configuration by clicking on Run, Debug configurations.... Click on OMNeT++ Simulation and the on New launch configuration. Given a new name to the configuration and set the working directory to the folder where your omnetpp.ini is (e.g., /veins/examples/platooning), choose the configuration (e.g., Sinusoidal) and the run number (e.g., 2). Click on Cmdenv, then on Apply, then on Debug. This will start your simulation in debug mode in the GUI where you can set breakpoints, step into the code, look at variables’ value, etc. For Plexe-SUMO, you need to create a project inside the Eclipse CDT IDE, and then create a new debug configuration as in the OMNeT++ IDE. This time, however, you need to choose a C/C++ Attach to Application configuration because Plexe-SUMO is launched by Plexe-Veins automatically and not by the Eclipse IDE.

The second way is from command line. For Plexe-Veins simply launch your simulation using ./debug instead of ./run. This will launch gdb that can be used to perform debugging. For Plexe-SUMO you will need to launch gdb (or lldb) from your terminal and then attach to the PID of the Plexe-SUMO instance.

References

  1. R. Rajamani, H.-S. Tan, B. K. Law, and W.-B. Zhang, “Demonstration of Integrated Longitudinal and Lateral Control for the Operation of Automated Vehicles in Platoons”, IEEE Transactions on Control Systems Technology, vol. 8, no. 4, pp. 695–708, Jul. 2000. [Link to paper]
  2. J. Ploeg, B. T. M. Scheepers, E. van Nunen, N. van de Wouw, and H. Nijmeijer, “Design and Experimental Evaluation of Cooperative Adaptive Cruise Control”, in IEEE International Conference on Intelligent Transportation Systems (ITSC 2011), Washington, DC, 2011, pp. 260–265. [Link to paper]
  3. S. Santini, A. Salvi, A. S. Valente, A. Pescapè, M. Segata, and R. Lo Cigno, “A Consensus-based Approach for Platooning with Inter-Vehicular Communications”, in 34th IEEE Conference on Computer Communications (INFOCOM 2015), Hong Kong, China, 2015, pp. 1158–1166. [Link to paper]
  4. A. Ali, G. Garcia, and P. Martinet, “The Flatbed Platoon Towing Model for Safe and Dense Platooning on Highways”, Intelligent Transportation Systems Magazine, IEEE, vol. 7, no. 1, pp. 58–68, Jan. 2015. [Link to paper]