tum-esi / COLAW

Cooperative Location Proof Architecture for VANETs based on Witnessing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COLAW - Simulation Code and Supplemental Material

In order to analyze the effectiveness of our location proof system (add link) we used the Artery framework to simulate the V2X communication between the vehicles according to the ETSI ITS-G5 protocols. In the following, the official installation and configuration guide is presented. Further instructions about the location proof system can be found under scenarios/artery/README.md and information about the evaluation of the generated data under scenarios/artery/results/README.md.

TL;DR

Notes on build process

Artery doesn't build on Fedora, the recommended distribution is Ubuntu. The build process succeded with Ubuntu 18.04.

OMNeT++ (Ubuntu)

For other OS or distributions have a look at the official installation guide. First install the necessary dependencies:

sudo apt-get update
sudo apt-get install build-essential gcc g++ bison flex perl python python3 qt5-default libqt5opengl5-dev tcl-dev tk-dev libxml2-dev zlib1g-dev default-jre doxygen graphviz libwebkitgtk-1.0 openmpi-bin libopenmpi-dev openscenegraph-plugin-osgearth libosgearth-dev

Download the latest OMNeT++ version here and setup your OMNeT++ environment:

tar xvfz omnetpp-5.\*-src-linux.tgz
cd omnetpp-5.\*
. setenv

Add export PATH=$HOME/omnetpp-5.*/bin:$PATH to your ~/.bashrc file and reopen your terminal. Finish the installation with:

./configure WITH_TKENV=no WITH_QTENV=no
make

SUMO (Ubuntu)

For other OS or distributions have a look at the official installation guide

NOTE: Artery requires SUMO 1.0 or later since its TraCI protocol is not compatible with earlier versions anymore.

sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc

Add export SUMO_HOME=usr/share/sumo to your ~/.bashrc file and reopen your terminal.

Location Proof System

git clone https://gitlab.lrz.de/tum-ei-esi/automotive-consensus.git
git submodule update --init --recursive

Veins

In the root directory execute:

make veins

Vanetza

Install the necessary dependencies and in the root directoy execute:

sudo apt-get install cmake libboost-all-dev geographiclib-tools libcrypto++-dev libcrypto++-doc libcrypto++-utils
make vanetza

INET

In the root directory execute:

make inet

Artery

In the root directory execute:

mkdir build
cd build
cmake ..
cmake --build .

After setting up your environment you can now run the LPS simulation with:

cmake --build build --target run_example

For further information about the LPS and the possible scenario configurations read /scenarios/artery/README.md. If you want Artery to start SUMO with a graphical user interface, you can uncomment following line in your scenarios/artery/omnetpp.ini:

.traci.launcher.sumo = "sumo-gui"

Artery (official)

Artery enables V2X simulations based on ETSI ITS-G5 protocols like GeoNetworking and BTP. Single vehicles can be equipped with multiple ITS-G5 services through Artery's middleware, which also provides common Facilities for these services.

Artery started as an extension of the Veins framework but can be used independently nowadays. Please refer to its documentation for details about Veins.

Requirements

You need a C++ Compiler with C++11 support, Boost and Vanetza libraries for building Artery along with Veins. Artery and Veins build upon the discrete event simulator OMNeT++, which you need to obtain as well. We have tested Artery with OMNeT++ 5.4, GNU GCC 7.3 and Boost 1.65.1 successfully. SUMO 1.0 or later is required since its TraCI protocol is not compatible with earlier versions anymore. Only CMake is the officially supported way for building Artery.

Compatible versions of INET, Veins, Vanetza, and other components are managed as git submodules in the extern subdirectory. Please make sure to fetch these submodules when cloning our repository!

git clone --recurse-submodule https://github.com/riebl/artery.git

Alternatively, you can also load these submodules after cloning:

git submodule update --init --recursive

You might obtain more recent versions from their upstream repositories:

Build instructions

Veins and Vanetza need to be built before Artery itself. For this purpose, a Makefile is located in Artery's root directory. The following steps assume you have cloned the Artery repository on your (preferably Linux) machine and you have moved your terminal to this clone's directory. You can build all of these external project dependencies at once via the default make all target.

Veins

Please make sure you have all dependencies of Veins installed and set up OMNeT++ beforehand. If you have any doubts, refer to the Veins tutorial. The bundled version of Veins is then built with following steps:

cd extern/veins
./configure
make

Alternatively, you can also just invoke make veins in the root directory of Artery, which executes exactly these steps but saves you some typing.

Vanetza

Similarly, you can simply call make vanetza in the root directory and it will try to build Vanetza for you in extern/vanetza/build. Of course, you need to install Vanetza's dependencies first. See the Vanetza Readme for details.

INET

As the next step, you need to build INET. Make sure you are in the root directory of Artery and simply call make inet there. INET's build dependencies are listed in its install manual.

Artery

Are you still with us? Congratulations, you are almost done!

mkdir build
cd build
cmake ..
cmake --build .

These steps create a build directory for Artery, configure the build directory and finally build Artery there.

Running Artery

When you have finished building Artery, you can give the shipped example a try to see if everything runs smoothly. With current Artery versions there is no need to start Veins' sumo-launchd script any more. Instead, Artery will start a SUMO instance on its own with appropriate parameters. You can start the example scenario of Artery (located in scenarios/artery) simply by calling the run_example target from Artery's root directory:

cmake --build build --target run_example

Please make sure that sumo can be executed within in your environment because this is the default SUMO executable used by Artery. You can, however, specify which SUMO executable shall be used explicilty. If you want Artery to start SUMO with a graphical user interface, you can put the following line in your omnetpp.ini:

*.traci.launcher.sumo = "sumo-gui"

About

Cooperative Location Proof Architecture for VANETs based on Witnessing

License:MIT License


Languages

Language:C++ 93.6%Language:Python 2.9%Language:CMake 2.7%Language:R 0.6%Language:Makefile 0.1%Language:C 0.0%Language:Shell 0.0%