Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on SUMO versions #14

Closed
lcipolina opened this issue Jul 19, 2020 · 41 comments
Closed

Error on SUMO versions #14

lcipolina opened this issue Jul 19, 2020 · 41 comments

Comments

@lcipolina
Copy link

lcipolina commented Jul 19, 2020

Hello Michele,
Thank you very much for these libraries.

I am on Ubuntu 18 and I have some problems on installation that I've fixed them this way:

Error: undefined-reference-to-symbol-pthread-key-deleteglibc-2-2-5
Solution: $ make -j <my number of CPUs> **–pthread**

I believe this solved the problem... however, I am trying to run the tutorials:
Now, I am trying:
./run -u Cmdenv -c Sinusoidal -r 2

However, I am getting the following error:
<!> Model error: TraCI server "SUMO 1.6.0" reports API version 20, which is unsupported. We recommend using SUMO 0.32.0 -- in module (Veins::TraCIScenarioManagerForker) Highway.manager (id=6), at t=0s, event #2

QUESTION: Should I downgrade my SUMO version to 0.32 or is there any other solution available?
Downgrading will not be convenient since I am using CARLA on this same machine which needs the latest SUMO

Thank you very much.

@michele-segata
Copy link
Owner

Dear Lucia,
you can upgrade to a newer version of Plexe. If you checkout the master branch of Plexe, you will be using version 3.0-alpha2. The main difference is that Plexe and Veins are now two separated pieces of software. So you would need to first download and compile Veins 5.0 in, for example, ~/src/veins and then, to compile Plexe, you need to run the following commands

./configure --with-veins ~/src/veins
make -j <n CPUs>

Let me know if this fixes your problem.

@lcipolina
Copy link
Author

lcipolina commented Jul 24, 2020

Hi Michele, I am following up on this... Just to see if I understand.. the installation has to be done as follows:
Thank you very much in advance!

VEINS

Download VEINS from here https://veins.car2x.org/download/
unzip in ~/src/veins
Not sure if I need to build it ??? (step 3 here: https://veins.car2x.org/tutorial/)

PLEXE-VEINS

cd ~/src
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins
git checkout plexe-2.1 (I guess this needs to be changed to git checkout plexe-3.0-alpha2 ??)

./configure --with-veins ~/src/veins (this part is new)

make -j <number of cores of your PC> MODE=release (do we keep the MODE part?)

PLEXE-SUMO

git clone https://github.com/michele-segata/plexe-sumo.git
cd ~/src/plexe-sumo
git checkout plexe-3.0-alpha2 (here changed version??)
mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j <number of cores of your PC>

@michele-segata
Copy link
Owner

Download VEINS from here https://veins.car2x.org/download/
unzip in ~/src/veins

It would be better to clone it from https://github.com/sommer/veins into ~/src/veins so it is easier to do upgrades later.

Not sure if I need to build it ??? (step 3 here: https://veins.car2x.org/tutorial/)

Yes, you need to compile it.

git checkout plexe-2.1 (I guess this needs to be changed to git checkout plexe-3.0-alpha2 ??)

Yes, choose the new version.

./configure --with-veins ~/src/veins (this part is new)

make -j <number of cores of your PC> MODE=release (do we keep the MODE part?)

As you wish. If you keep MODE it will only compile in release mode, while if you remove it it will compile it both in release and in debug mode.

PLEXE-SUMO

Plexe-SUMO is not required anymore, as of SUMO 1.2.0 my platooning models have been integrated into the official release. So you can just download and install the SUMO 1.6.0 binaries and you are ready to go without compiling SUMO.

@SafrasIqbal
Copy link

SafrasIqbal commented Aug 4, 2020

Hello Michele,

Thank you for the Plexe, It greatly helps for my MSc dissertation as I'm starting my project on cyber threats on the platoon formations and its communications. I hope your libraries will help me a lot with my experiments.

In the meantime, I am trying to install the latest version of the Plexe by referring to the above comments, and I'm hitting with the below error while compiling. I am trying to compile on the macOS 10.15.6. Appreciate any help here thanks.

"plexe/messages/UpdatePlatoonFormation_m.cc
plexe/messages/UpdatePlatoonFormationAck_m.cc
Creating shared library: ../out/clang-Release/src/libplexe.dylib
ld: library not found for -lveinsd
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../out/clang-Release/src/libplexe.dylib] Error 1
make: *** [all] Error 2

"

I just need to try it out with my host machine before going into VMs. If the latest version not ready for macOS yet I may look for alternatives. Thanks.

Regards,
Safras

@mightyCelu
Copy link
Contributor

Plexe depends on Veins, the error is indicating that the Veins library cannot be found. Have you built it, and passed its location to Plexe's configure?

@SafrasIqbal
Copy link

SafrasIqbal commented Aug 4, 2020

Hi mightyCelu,

Thank you for the prompt response.
I remember I did build the Veins and just to make sure to rebuild it and below 2 lines executed.

Creating script "./run"
Creating shared library: ../out/clang-release/src/libveins.dylib
Creating shared library: ../out/clang-debug/src/libveins.dylib

then I tried to build the Plexe and the error is gone. However, I got some error when try to run the first example.

`safras@Safrass-MacBook-Pro platooning % ./run -u Cmdenv -c Sinusoidal -r 2'
'OMNeT++ Discrete Event Simulation  (C) 1992-2017 Andras Varga, OpenSim Ltd.
Version: 5.1.1, build: 170508-adbabd0, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer'

'<!> Error: Attempt to load the oppsim shared library more than once. This usually happens when part of your simulation is using release libraries while other parts are using the debug version. Make sure to rebuild all parts of your model in either release or debug mode!`

It seems I build the Veins without specifying the MODE. so I rebuilt again with the release mode. this time I got a different error when trying to run the first example.

safras@Safrass-MacBook-Pro platooning % ./run -u Cmdenv -c Sinusoidal -r 2           

<!> Warning: opp_run: Cannot check library ../../src/plexe: dlopen(../../src//libplexe.dylib, 10): Library not loaded: /Users/safras/src/veins/out/clang-debug/src/libveins.dylib
  Referenced from: /Users/safras/src/plexe-veins/out/clang-release/src/libplexe.dylib
  Reason: image not found

OMNeT++ Discrete Event Simulation  (C) 1992-2017 Andras Varga, OpenSim Ltd.
Version: 5.1.1, build: 170508-adbabd0, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer


<!> Error: Cannot load library '../../src//libplexe.dylib': dlopen(../../src//libplexe.dylib, 10): Library not loaded: /Users/safras/src/veins/out/clang-debug/src/libveins.dylib
  Referenced from: /Users/safras/src/plexe-veins/out/clang-release/src/libplexe.dylib
  Reason: image not found

End.

Please help with this error. Is it something to do with the OMNET++ version? I install the 5.1.1 version. Thanks

Regards,
Safras

@SafrasIqbal
Copy link

The above issue is related to not properly installing omnet++. Once I build the omnet++ properly its works fine. Thanks.

@lcipolina
Copy link
Author

Hi @SafrasIqbal sorry to jump in. I am interested in your Thesis once it's done. If you can share it, I will be happy to read. I am working on Platooning and Reinforcement Learning.

Cheers.

PD: I will make a "Pull request" with an updated version of the installation steps, in the case Michele wants to update the tutorial.

@SafrasIqbal
Copy link

Hi Lucian,

Thank you for the interest, yes sure I am happy to share the thesis one it's done.

I should thank you for initiating this thread, it did enlighten me with the PLEXE version 3.0. It was much easier to get it up and running the simulator. In fact, I was struggling with the 2.5 version in 3 different environments. However, with the 3.0 version, I have some issues with generating the results.

Regards,
Safras

@lcipolina
Copy link
Author

I would like to confirm the following:

This wont work with SUMO 1.6, right?
One needs SUMO 1.2.0 as per Vein's instructions here: https://veins.car2x.org/tutorial/#step1

Thanks!

@SafrasIqbal
Copy link

For me yes, it did work with SUMO 1.6, no issues.

I would like to confirm the following:

This wont work with SUMO 1.6, right?
One needs SUMO 1.2.0 as per Vein's instructions here: https://veins.car2x.org/tutorial/#step1

Thanks!

@mightyCelu
Copy link
Contributor

Yes, Veins will work with SUMO 1.6.

@lcipolina
Copy link
Author

Hi all, thank you very much for your kind replies.
I am building VEINS following the tutorial here: https://veins.car2x.org/tutorial/#step3

*Import the project into your OMNeT++ IDE workspace by clicking File > Import > General: Existing Projects into Workspace and selecting the directory you unpacked the module framework to.

Build the newly imported project by choosing Project > Build All in the OMNeT++ 5 IDE. After the project built, you are ready to run your first IVC evaluations, but to ease debugging, the next step will ensure that SUMO works as it should.*

I just wanted to check whether this step was correct. As I am not given the option to do "Next" just to "Finish". Thank you very much.

image

@mightyCelu
Copy link
Contributor

Finish should work just fine, it's simply the last step in the process.

@lcipolina
Copy link
Author

lcipolina commented Aug 7, 2020

Thank you very mych @mightyCelu ! I am following the tutorial. I am finding this step a little bit bananas :)
https://veins.car2x.org/tutorial/#step4

I believe it is written with Windows in mind (hence the mention of MinGW) . Even so, I guess the initial directory change to VEINS' folder is not needed if one just wants to test SUMO.

Is this step aimed to test SUMO's GUI working?
if so, on Linux command line, one can simply do:

sumo-gui

Or is this step aimed to some other configuration that I am missing. Thank you very much for your time.

See below:

_Step 4: Make sure SUMO is working

In the OMNeT++ MinGW command line window, you should be able to have SUMO simulate an example scenario by changing the current directory to /c/Users/user/src/veins-5.0/examples/veins/ using cd ../veins-5.0/examples/veins and running

/c/Users/user/src/sumo-1.2.0/bin/sumo.exe -c erlangen.sumo.cfg_

@mightyCelu
Copy link
Contributor

Yes, the tutorial is executed on Windows. On Linux it should work similarly, just that the paths will be different, and the binaries don't have .exe suffixes.

@lcipolina
Copy link
Author

Hi @mightyCelu , Thank you very much for your reply.

Now I have made progress up to STEP 5: "Final step: Run the Veins demo scenario"

I was able to do the following:

cd to:
$<path to veins>
Then execute:
$   python sumo-launchd.py -vv –c <path to SUMO>

In my case:
~/src/veins/ python sumo-launchd.py -vv –c /usr/share/sumo/bin/sumo
The script prints: Listening on port 9999

Then for the equivalent of this line, I did:

I left that there and opened a new Terminal window and did:
~/src/veins/examples/veins$ omnetpp omnetpp.ini
Which prints:
Starting the OMNeT++ IDE...

It will start OMNET++ and throw these messages. Since It's my first time with this application, I am not sure what to select

Thank you very much:

VEINS-error

VEINS-error2

@mightyCelu
Copy link
Contributor

The omnetpp binary starts the OMNeT++ IDE. To run the simulation, there are two ways:

  • Run via the IDE (as described in the tutorial):

In the OMNeT++ 5 IDE, simulate the Veins demo scenario by right-clicking on veins-5.0/examples/veins/omnetpp.ini and choosing Run As > OMNeT++ simulation.

  • Run via CLI: From within the examples/veins directory, call ./run -u Qtenv.

@lcipolina
Copy link
Author

lcipolina commented Aug 11, 2020

Hello @mightyCelu , thank you very much for all your answers.
I see that I had to select a workspace and then go to the Project Explorer. I found the omnetpp.ini file
After doing "run with Omnet++" I am getting the following error message: "Error within Debug UI"

I have been searching online with no luck so far. Do you have an idea what it could be?
Thank you very much!

image

@mightyCelu
Copy link
Contributor

From the screenshot you shared it looks to me like you only included/importet the example directory of veins (examples/veins) in the workspace. If that's the case, you need Veins as a complete project in your workspace, this should be possible with the Import existing projects into workspace dialog you mentioned above.

Otherwise, I need a bit more context to be able to help, such as details to the error message or an console/error log.

@lcipolina
Copy link
Author

Hi @mightyCelu , thank you for your assistance. The way I've imported the projects is following the screen I've pasted above. I am pasting it here for your reference. It seems to me that it imported everything.

Then I've built the project as indicated on the tutorial.

How can I get more context on the error beyond the pop up screen?

image

@mightyCelu
Copy link
Contributor

mightyCelu commented Aug 13, 2020

This is interesting. I just tried to import Veins as well, for me it looks different, in particular, the first project in your list is examples/veins, when it should be veins itself. Can you try downloading the zipped version of Veins and importing that, i.e., use an archive instead of an directory? Also, what version of omnet are you using?

@lcipolina
Copy link
Author

lcipolina commented Aug 13, 2020

First of all, thank you very much @mightyCelu for all your time dedicated to solving my issues. I believe I've found the light at the end of the tunnel. In exchange, I offer to make a nice "Pull Request" with a Linux installation tutorial to help other Linux users.

Now, I will explain where the issue was:

If you look above, one of the messages, says

"It would be better to clone it from https://github.com/sommer/veins into ~/src/veins so it is easier to do upgrades later."

This actually was complicating importing VEINS into Omnet, simply due to the folder structure, as you pointed out.
So there are 2 options:

Or this is what I did (POLEMIC DECISION, can be undone if necessary):

  • Download the zip file from GitHub as follows:
cd ~/src
https://github.com/sommer/veins/archive/master.zip

(We need to unzip it, as omnet doesn't allow to load .zip files)
Then, we will have a directory embedded into another folder called "veins-master" see below:

image

To test SUMO (step 4)
alpha@alpha:~/src/veins/veins-master/examples/veins$ sumo-gui -c erlangen.sumo.cfg

To run the VEINS scenario (step 5)
alpha@alpha:~/src/veins/veins-master$ python sumo-launchd.py -vv –c /usr/share/sumo/bin/sumo

On a new terminal:

alpha@alpha:~/src/veins/veins-master/examples/veins$ omnetpp

And here are the resulting screens, which seem to indicate that everything run as planned (RIGHT??):

Except for this part, which I don't see (see the screenshots below):

"If everything worked as intended this will give you a working simulation scenario using OMNeT++ and SUMO running in parallel to simulate a stream of vehicles that gets interrupted by an accident."

image

image

image

@mightyCelu
Copy link
Contributor

Great to hear that everything worked out for you and thanks for posting this guide, it might help someone. The screenshots you posted look like everything's working fine now.

@lcipolina
Copy link
Author

Hi @mightyCelu thank you very much for all this help. Once this issue is closed, the instructions will be hidden. So I plan to make a Pull Request on the GitHub Repo, that you can use for following users.

Now that I have compiled VEINS, I would like to compile PLEXE-VEINS. The instructions I was given by @michele-segata above are as follows:

cd ~/src
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins

Here it complains that it can't find the git Repo:

git checkout plexe-3.0-alpha2

Error message:
fatal: not a git repository (or any of the parent directories): .git

Is the address of the git checkout correct? Thanks.

Then the rest of the instructions, as I understand them, are as follows:

./configure --with-veins ~/src/veins 
# To compile it both in release and in debug mode:
make -j <number of cores of your PC> 

@whatgit
Copy link

whatgit commented Aug 18, 2020

Here it complains that it can't find the git Repo:

git checkout plexe-3.0-alpha

As I understood, I think it is because the branch plexe-3.0-alpha does not exist. I can see that the latest one is named plexe-3.0a1

@lcipolina
Copy link
Author

Hi @whatgit. That is true. I am not sure why Michele recommended Version Alpha-2...

In any case, I checked out that branch, and then execute the following commands:

git checkout plexe-3.0a1
./configure --with-veins /home/alpha/src/veins/veins-master (I've pointed it to the folder where package.ned is)
make -j 48  (my number of cores)

Getting this lovely error message:

../../veins/veins-master/src/veins/modules/application/ieee80211p/DemoBaseApplLayer.h:29:10: fatal error: 'veins/modules/messages/BaseFrame1609_4_m.h' file not found
#include "veins/modules/messages/BaseFrame1609_4_m.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:171: recipe for target '../out/clang-release/src/plexe/protocols/SimplePlatooningBeaconing.o' failed
make[1]: *** [../out/clang-release/src/plexe/protocols/SimplePlatooningBeaconing.o] Error 1
Makefile:171: recipe for target '../out/clang-release/src/plexe/apps/GeneralPlatooningApp.o' failed
make[1]: *** [../out/clang-release/src/plexe/apps/GeneralPlatooningApp.o] Error 1
1 error generated.
Makefile:171: recipe for target '../out/clang-release/src/plexe/protocols/BaseProtocol.o' failed
make[1]: *** [../out/clang-release/src/plexe/protocols/BaseProtocol.o] Error 1
1 error generated.
Makefile:171: recipe for target '../out/clang-release/src/plexe/scenarios/BrakingScenario.o' failed
make[1]: *** [../out/clang-release/src/plexe/scenarios/BrakingScenario.o] Error 1
1 error generated.
Makefile:171: recipe for target '../out/clang-release/src/plexe/maneuver/JoinAtBack.o' failed
make[1]: *** [../out/clang-release/src/plexe/maneuver/JoinAtBack.o] Error 1
make[1]: Leaving directory '/home/alpha/src/plexe-veins/src'
Makefile:15: recipe for target 'all' failed
make: *** [all] Error 2

@whatgit
Copy link

whatgit commented Aug 18, 2020

I am not sure what could cause the error, it just did not find the header file. Hopefully it exists?

Perhaps you could try to configure it like this instead?
./configure --with-veins /home/alpha/src/veins

I have not done this for a very long time, so I have no experience configuring it with --with-veins option. I just think the path you gave should point to the source directory of Veins.

@lcipolina
Copy link
Author

lcipolina commented Aug 18, 2020

Thank you very much @whatgit.

The make file is searching on this directory:

#include "veins/modules/messages/BaseFrame1609_4_m.h"

While I've found the header file on these directories:
/home/alpha/src/omnetpp-5.6.2/workspace/veins/src/veins/modules/messages/BaseFrame1609_4_m.h
/home/alpha/src/omnetpp-5.6.2/samples/veins/src/veins/modules/messages/BaseFrame1609_4_m.h

It seems to me that I didn't build VEINS correctly into Omnet :)
I am unsure of what next steps to take.

@SafrasIqbal
Copy link

Hi Lucia,

I assume you have built the Veins 5.0 through OMNET++ IDE as per the tutorial.

I would suggest trying below steps which worked for me.

  1. cd to Veins 5.0 folder.
  2. ./configure
  3. make -j4 MODE=release

Once the above steps completed, try to build the Plexe-Veins 3.0 again in Release mode. The first time it worked for me in release mode. If I don't specify the mode, it will compile in debugging and release mode both, in that case, I did encounter some issue in debug mode. So it's better try in release mode first and compile again for debug mode if necessary.

@lcipolina
Copy link
Author

Hi @SafrasIqbal thank you very much.
I have downloaded VEINS the way @michele-segata told me above: from its Repo
"It would be better to clone it from https://github.com/sommer/veins into ~/src/veins so it is easier to do upgrades later."

Then I compiled VEINS with OMNET as you can see my screenshots above.

Then, Michele suggested me above to do the following:

cd ~/src
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins
git checkout plexe-2.1 (I changed this to the latest checkout as per his recommendation above)
./configure --with-veins ~/src/veins (this part is new)
make -j <number of cores of your PC> MODE=release 
  1. So I am not sure if I should run the "./configure" file on the "plexe-veins" as suggested above, or on the "veins" folder
  2. Also, the ./configure script is telling me that it needs the option "--with veins"
alpha@alpha:~/src/plexe-veins$ ./configure
usage: configure [-h] --with-veins PATH
configure: error: argument --with-veins is required

@SafrasIqbal
Copy link

SafrasIqbal commented Aug 18, 2020

Hi Lucia,

Sorry for the confusion, my suggestion is on Veins 5.0 which you need to built before compiling Plexe-Veins. The all the steps you mentioned above are applicable after compiling Veins 5.0.

  1. So I am not sure if I should run the "./configure" file on the "plexe-veins" as suggested above, or on the "veins" folder

just ./configure will not work in "Plexe-veins" it should be tried on Veins folder.

@lcipolina
Copy link
Author

lcipolina commented Aug 18, 2020

Hi @SafrasIqbal , my confussion comes with the fact that now I have 2 set of directives:

Safras:

cd to Veins 5.0 folder.
./configure
make -j4 MODE=release

While @michele-segata :

clone it from https://github.com/sommer/veins into ~/src/veins so it is easier to do upgrades later.
cd ~/src
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins
git checkout plexe-2.1 (I changed this to the latest checkout as per his recommendation above)
./configure --with-veins ~/src/veins (this part is new)
make -j <number of cores of your PC> MODE=release

@SafrasIqbal
Copy link

Hi Lucia,

I can see 2 different directives for 2 different software. Both are not same.

  1. Veins 5.0 is a separate simulation library where Plexe-Veins is an enhancement of Veins for platoon scenarios.
  2. Plexe-veins the second software which Michele was providing steps to compile it.

If you notice:
./configure --with-veins ~/src/veins step to include "Venis" while compiling latest version Plexe-veins 3.0. where you need to give the path of Venis, which already compiled. If you have missing files in this path, PLEXE will not succeed compline correctly, and you will get issues like you getting now.

Apologies if I try to confuse you further.

@lcipolina
Copy link
Author

lcipolina commented Aug 18, 2020

Hi @SafrasIqbal Thank you very much for this.

I first compiled VEINS (using the GitHub link and some screenshots that you will see above) and following this tutorial: https://veins.car2x.org/tutorial
and now I would like to use Plexe-Veins. When I try to follow the directives provided by Michele to compile Plexe-Veins, is where I am getting the error of a missing header file.

Supposedly, my compilation of VEINS was successful (see the chain above where @mightyCelu tells me that my compilation was successful. So I don't know what I am doing wrong.

My guess is that I need to "recompile" veins again, is this what you are saying?
So first run this:

cd to Veins 5.0 folder.
./configure
make -j4 MODE=release

and then this:

clone it from https://github.com/sommer/veins into ~/src/veins so it is easier to do upgrades later.
cd ~/src
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins
git checkout plexe-2.1 (I changed this to the latest checkout as per his recommendation above)
./configure --with-veins ~/src/veins (this part is new)
make -j <number of cores of your PC> MODE=release

Thanks

@SafrasIqbal
Copy link

Yes you have complied Veins above using OMNET++ IDE and the path for this I can see

/home/alpha/src/omnetpp-5.6.2/workspace/veins

I think easiest way to resolve your issue to include above path while compiling Plexe-Veins.

./configure --with-veins /home/alpha/src/omnetpp-5.6.2/workspace/veins

Please try this first. if this is not working will try some alternatives.

@lcipolina
Copy link
Author

@SafrasIqbal SUCCESS! thank you very very much.

Now, This is my understanding, if you can please confirm:

There are 3 options to run PLEXE:

  1. Download VEINS and build using:
cd to Veins 5.0 folder.
./configure
make -j<number of CPUS> MODE=release
  1. Then build Plexe using:
git clone https://github.com/michele-segata/plexe-veins.git
cd plexe-veins
git checkout plexe-3.0-alpha2 
./configure --with-veins ~/src/veins
make -j <number of cores of your PC> MODE=release
  1. Or, if I want to hook-up Plexe with Omnet, to simulate communication in Platooning, then I have to go through all this: https://veins.car2x.org/tutorial
    and then build PLEXE using the command you added above, since there is where the header files are.
    Which is what I did.

Is my understanding correct?

@SafrasIqbal
Copy link

Ok great. finally, it worked. :)

I think above option 1 & 2 should be combined into one option. The second option is as option 3, so there're 2 options.

@lcipolina
Copy link
Author

yes, indeed you are right. I'll put them together in the tutorial.

So option 1 above, doesn't allow one to do V2V communications, right? it's just to test platooning in Sumo?

I guess that's the difference between (1) and (3) above (that will be called "2")

@michele-segata
Copy link
Owner

I'm glad you finally made it work. I'll try to clear some doubts.

So option 1 above, doesn't allow one to do V2V communications, right? it's just to test platooning in Sumo?

Plexe is composed by two parts. The mobility part (control algorithms and vehicle dynamics) which is implemented in SUMO, and the communication and applications part which is this repository.
Veins is an OMNeT++ library that enables you to couple OMNeT++ with SUMO and to simulate vehicular communications and applications, but it doesn't provide functionalities for platooning, which is what Plexe does. Veins is a requirement for Plexe (the communication part), because Plexe needs to be coupled with SUMO and to use the V2V communication modules that Veins provides.

Option 1+2 and option 3 are exactly the same thing. The only difference is that, in option 3, you are building Veins using the OMNeT++ GUI instead of doing it on the command line.

The option of using Plexe without simulating communication is a different thing. You don't need OMNeT++, nor Veins, nor Plexe in this repository. You just need SUMO (post version 1.2.0, because Plexe modules have been embedded into SUMO as of version 1.2.0) and the Python APIs for Plexe. The Python APIs control the SUMO simulation and the tells vehicles how to behave.

Another doubt you had was about ./configure: this generates all the required Makefiles to build the software, so it is needed to build both Veins and Plexe. In addition to generating the Makefiles, in Plexe it also tells where Veins is located, so that 1) Plexe can find Veins' include files and 2) Plexe can be linked against Veins.

To sum up, this is the complete procedure I follow to build this repository (I am assuming SUMO and OMNeT++ are already installed).

cd ~/src
git clone https://github.com/sommer/veins
cd veins
./configure
make -j <n cpus> MODE=release

cd ~/src
git clone https://github.com/michele-segata/plexe-veins
cd plexe-veins
git checkout plexe-3.0a2
./configure --with-veins ~/src/veins
make -j <n cpus> MODE=release

@lcipolina
Copy link
Author

Thank you very much to everyone who has helped me through the installation of all these libraries.
I will make a PR with the installation steps in the hope that it will help someone else in the future.

I'll close the issue now as all my questions have been answered and I am able to run the examples provided.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants