- Notifications
You must be signed in to change notification settings - Fork7
A system level simulator for the Internet of Drones, based on ns-3.
License
telematics-lab/IoD_Sim
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
IoD_Sim is an open source andsystem-level simulator for the IoD (Internet ofDrones).
Developed on top of the well-knownns-3 (NetworkSimulator 3), it implements the key networking elements (drones, network accesspoints, and Zone Service Provider), a standard-compliant communication stackbased on the IEEE 802.11 and LTE technology, and scenarios with various mobilitymodels.
The source code presents the implementation of models and examples scripts,also known asscenarios, that use such models to simulate a variable numberof drones that:
- Move according to the mobility model associated to the reference scenario.
- Exchange messages with network access points deployed on a cartesian or geographic 3D space.
For more details on how IoD_Sim works and all its features, the followingresearch publications are highly recommended:
- G. Grieco, G. Iacovelli, P. Boccadoro and L. A. Grieco, "Internet of Drones Simulator: Design, Implementation, and Performance Evaluation," in IEEE Internet of Things Journal, vol. 10, no. 2, pp. 1476-1498, 15 Jan.15, 2023, doi: 10.1109/JIOT.2022.3207324.
- G. Grieco, G. Iacovelli, M. Sandri, M. Giordani, M. Zorzi and L. A. Grieco, "Preliminary Performance Evaluation of avSatellite-to-HAP Communication Link," European Wireless 2023; 28th European Wireless Conference, Rome, Italy, 2023, pp. 340-345.
- G. Grieco, G. Iacovelli, D. Pugliese, D. Striccoli and L. A. Grieco, "A System-Level Simulation Module for Multi-UAV IRS-Assisted Communications," in IEEE Transactions on Vehicular Technology, vol. 73, no. 5, pp. 6740-6751, May 2024, doi: 10.1109/TVT.2023.3342298.
Older publications that might still be useful:
You can head over to theReleases section to download a copy of astable version of the software.
The IoD_Sim repository is where this software is developed and there are manyways in which you can participate in the project, for example:
- Submit bugs and feature requests and help us verify as they arechecked in.
- Reviewsource code changes.
- Review thedocumentation and make pull requests for anything, fromtypos to new content.
IoD_Sim is primarily compatible withLinux-based operating systems. You cantest it on macOS, altough we are not focused on providing first-class supportfor it. For macOS, Windows, or any other operating system, you are encouragedto useDocker,WSL or any other(pseudo)virtualization platform that can provide you a stable Linux-based workenvironment. You are welcome to provide new compatibility solutions any time.
Want to build scenarios through a GUI?Airflowis a Visual Programming Editor ad-hoc for IoD_Sim! It relies onsplash to transpile C++models in Python visual blocks.
The following quick start has been tested on Ubuntu 22.04 LTS. Please note thatthis process may be similar in other distros as well. In case of any difficulties,you are welcome to raise a pull request and propose some adjustments.
First of all, clone this repository, then open the folder with VSCode and executethe following tasks:
- Install dependencies,
- Integrate IoD Sim with ns3
- Configure IoD Sim
- Build IoD Sim
Otherwise, run the following commands:
./tools/install-dependencies.sh./tools/prepare-ns3.shcd ns3/./ns3 configure --enable-examples --disable-mpi --disable-python --enable-modules=iodsim./ns3 build
To run a JSON scenario configuration, execute the following command:
cd ns3/./ns3 run iodsim -- --config=../scenario/simple_wifi.json
Before proceeding with the simulator, it may be helpful to generate the respective documentation. IoD_Sim relies on theDoxygen tool, which should already be installed with the other dependencies (if not, refer to the specific installation procedure for your distribution).
The documentation can be generated in HTML and LaTeX formats by running:
doxygen ./docs/IoD_Sim_doc
After creating your own scenario through the JSON file, you can useDocker to quickly proceed to simulation in a few steps. The first time, the container image must be built by running the following command in the main directory of the repository:
docker build . -t docker_iod_sim
Next, the simulation can be run by launching:
sudo docker run --rm -v ./results:/IoD_Sim/results -v ./scenario:/IoD_Sim/scenario docker_iod_sim [--help] <simulation_file_name>
When completed, theresults
folder will contain the results of the simulation. It should be noted that if a new scenario is placed in./scenario
, there will be no need to rebuild the container.
Each version of IoD_Sim relies on a specific release of ns-3. A compatibility table can be found below:
IoD_Sim version | ns-3 version | Build system | Release date |
---|---|---|---|
v4.0.2 | ns-3.42 | cmake | January 9, 2025 |
v4.0.1 | ns-3.42 | cmake | June 5, 2024 |
v4.0.0 | ns-3.42 | cmake | June 2, 2024 |
v3.0.0 | ns-3.38 | cmake | April 4, 2023 |
v2.0.0 | ns-3.35 | waf | April 12, 2022 |
v1.0.0 | ns-3.30 | waf | October 27, 2019 |
Copyright (C) 2018-2025The IoD_Sim Authors.
This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.
This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public License alongwith this program; if not, write to the Free Software Foundation, Inc.,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
About
A system level simulator for the Internet of Drones, based on ns-3.