Skip to content

Commit

Permalink
Flexe 3.0.0, new release!
Browse files Browse the repository at this point in the history
  • Loading branch information
WellingtonLobato committed Mar 18, 2024
1 parent 124640c commit 5776265
Show file tree
Hide file tree
Showing 59 changed files with 55,341 additions and 14,584 deletions.
12 changes: 10 additions & 2 deletions .cproject
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,14 @@
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="refreshScope"/>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="debug">
<resource resourceType="PROJECT" workspacePath="/flexe"/>
</configuration>
<configuration configurationName="release">
<resource resourceType="PROJECT" workspacePath="/flexe"/>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cproject>
5 changes: 4 additions & 1 deletion .nedfolders
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
simulations/veins
simulations/grid
simulations/multi_model
simulations/simple_example
simulations/small_lust
src
6 changes: 6 additions & 0 deletions .project
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
<project>veins</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.omnetpp.cdt.MakefileBuilder</name>
<arguments>
Expand Down Expand Up @@ -35,5 +40,6 @@
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>org.omnetpp.main.omnetppnature</nature>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
5 changes: 5 additions & 0 deletions .pydevproject
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
</pydev_project>
134 changes: 71 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,106 @@
<p align="center">
<img src=img/Flexe_logo.png>
</p>
# FLEXE: Federated Learning Extension for Veins

# Flexe
Flexe is a new framework for simulation of Federated Learning (FL) in Connected and Autonomous Vehicle (CAVs). Its adaptable design allows for the implementation of a variety of FL schemes, including horizontal, vertical, and Federated Transfer Learning. Flexe and PyFlexe are free to download and use, built for customization, and allows for the realistic simulation of wireless networking and vehicle dynamics. The project was partitioned into two, one of which is responsible for vehicle-to-vehicle communication ([Flexe](https://github.com/WellingtonLobato/flexe)) and the other for the construction and training of models ([PyFlexe](https://github.com/WellingtonLobato/PyFlexe)).
FLEXE is a new framework for simulation of Federated Learning (FL) in Connected and Autonomous Vehicle (CAVs). Its adaptable design allows for the implementation of a variety of FL schemes, including horizontal, vertical, and Federated Transfer Learning. FLEXE is free to download and use, built for customization, and allows for the realistic simulation of wireless networking and vehicle dynamics.

## Getting Started

We developed FLEXE to make it possible to implement and develop vehicular FL applications within the context of CAVs. It further simplifies the process of modeling specific Machine Learning (ML) and FL applications into environments suitable for CAVs. Specifically, we developed Flexe on top of the Veins network simulator to simulate the dynamics of communication between vehicles.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

### Prerequisites
PyFlexe requires the following software to be installed

- OMNeT++
- conan
- grpc
- TensorFlow
- PyTorch
OMNeT++:
-6.0
SUMO:
-
Veins:
-5.2

### OMNeT++ (6 >=) installation
Please do follow the instructions from the official [OMNeT documentation](https://doc.omnetpp.org/omnetpp/InstallGuide.pdf)
```
Give examples
```

### Installing

A step by step series of examples that tell you how to get a development env running

Say what the step will be

### Conan installation (1.58.0 >=)
Please do follow the instructions from the official [conan documentation](https://docs.conan.io/en/latest/installation.html)
```
pip install conan==1.58.0
Give the example
```

### GRPC installation (== 1.38.1)
Please do follow the instructions from the official [GRPC documentation](https://grpc.io/docs/languages/python/quickstart/)
And repeat

### Installing
```
until finished
```

End with an example of getting some data out of the system or using it for a little demo

## Running the tests

In order to install the necessary packages to run Flexe, just run the following command in the root directory.
Explain how to run the automated tests for this system

### Break down into end to end tests

Explain what these tests test and why

```
conan install . --build missing -s compiler.version=10 -s compiler.libcxx=libstdc++11
Give an example
```

Import the project into your OMNeT++ IDE workspace by clicking File > Import > General: Existing Projects into Workspace and selecting the directory you unpacked the Flexe module to.
### And coding style tests

Flexe is an extension to the well known and widely used Veins simulation framework. See the Veins website <http://veins.car2x.org/> for a tutorial, documentation, and publications.
Explain what these tests test and why

```
Give an example
```

## Project structure - main components
## Deployment

Add additional notes about how to deploy this on a live system

├── simulations
│   ├── grid
│   ├── small_lust
│   └── veins
└── src
├── flexe
│   ├── application
│   ├── cache
│   ├── messages
│   └── proto
├── Makefile
└── makefrag
## Built With

* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning.
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).

## Authors

* **Wellington Lobato** - [WellingtonLobato](https://github.com/WellingtonLobato)
* **Joahannes B. D. da Costa** - [joahannes](https://github.com/joahannes)
* **Allan M. de Souza** - [AllanMSouza](https://github.com/AllanMSouza)
* **Denis Rosario**
* **Christoph Sommer** - [sommer](https://github.com/sommer)
* **Leandro A. Villas**

# Citation

PyFlexe and Flexe can reproduce results in the following papers:

```tex
@INPROCEEDINGS{Lobato2022,
author={Lobato, Wellington and Costa, Joahannes B. D. Da and Souza, Allan M. de and Rosário, Denis and Sommer, Christoph and Villas, Leandro A.},
booktitle={2022 IEEE 96th Vehicular Technology Conference (VTC2022-Fall)},
title={FLEXE: Investigating Federated Learning in Connected Autonomous Vehicle Simulations},
year={2022},
pages={1-5},
doi={10.1109/VTC2022-Fall57202.2022.10012905}
}
```
# Updates
Flexe Version 3.0.0 in the development phase.
* **Wellington Lobato** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* **Joahannes B. D. da Costa** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* **Allan M. de Souza** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* **Denis Rosario** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* **Christoph Sommer** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
* **Leandro A. Villas** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)


See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.

## License

This project is licensed under the GPL-2.0 license - see the [COPYING.md](COPYING.md) file for details
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

## Acknowledgments

* Hat tip to anyone whose code was used
* Inspiration
* etc


conan install . --build missing -s compiler.version=10 -s compiler.libcxx=libstdc++11

PROTO_IN_PATH=/home/jordan/git/Flexe2.0.0/
PROTO_FILE=/home/jordan/git/Flexe2.0.0/flexe.proto
PROTO_OUT_PATH=/home/jordan/git/Flexe2.0.0/src/flexe/proto/

Loading

0 comments on commit 5776265

Please sign in to comment.