VANESSA is a Vehicular Ad-hoc Network (VANET) solution for road safety
- 📝 Table of Contents
- Problem Statement
- Motivation
- System Architecture
- Prerequisites
- Environment setup
- Running the project
- How to use
- Contributing
- Contributers
VANESSA aims to build an efficient and scalable VANET system with protocols that can be used in a wide variety of applications. We used known methods in literature and built on them to meet scalability and efficiency requirements that can be run on any Unix-like system
Vehicular Ad-hoc Networks (VANETs) is a rising and active research field that has drawn the attention of many researchers and companies around the globe. The network architecture is continuously and rapidly changing. So, due to frequent disconnection, finding the best routing protocols that can handle such dynamicity is very challenging.
- Python3 & pip
- Go
- Socat
- Node JS & npm
- A web browser
-
$ git clone https://github.com/aaarafat/vanessa.git
-
$ sudo ./scripts/install-mnwifi.sh
-
$ sudo ./scripts/install-dep.sh
-
$ ./scripts/build.sh
-
$ sudo ./scripts/run-emulation.sh
-
$ npm run simulation
You can access it on
localhost:4200
-
$ npm run car
You can access it on
localhost:4201
-
$ npm run rsu
You can access it on
localhost:4202
Once we open the simulator, we will see the following
We can do the following
- Click on any point at the map to add an initial point
- Export the current state by clicking on Export
- Import an exported file by clicking on Import
- Clear the map by clicking on clear
we have the following options:
- Add accident on that selected location by clicking on Add Accident on the left-side bar
- Cancel the point by clicking on the rewind button on the top right corner
- Add another point to make a route in order to add a car
Now that we have added 2 points and constructed a route We can add a car or we can still cancel it.
We can adjust the car speed by updating the input shown in the figure below. And then we can add a car by pressing on Add Car button
shows a running simulation containing 2 cars pointed at by 1 and an obstacle pointed at by 2. Also, The RSUs ranges are indicated by the circles pointed at by 3
We can click on any of the added car to show its information and show its current route
we can see the range of this car and its speed and its port that we will use to login in into its UI.
Once we open the Car UI, we will be asked to enter the port of the car we want to
By entering the port that we can get from the simulator we will enter the car UI
In Car UI, we are shown the current location of the selected car and we can see the messages that it received on the right-side bar.
Just like the car we will enter the RSU port in the beginning
And once we enter it, we will be shown the RSU UI, in which we can observe its current state. We can see the Total packets it sent or received
Also, we can see its ARP table and the list of all obstacles reported by the cars to the RSUs
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b AmazingFeature-Feat
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin AmazingFeature-Feat
) - Open a Pull Request
Abdelrahman Arafat |
Abdelrahman Tarek |
Ahmed Walid |
Hassan Mohamed |