In [1], the authors abstractly explain IoD and their IoD_Sim as follows:
“The Internet of Drones (IoD) is a networking architecture that stems from the interplay between Unmanned Aerial Vehicles (UAVs) and wireless communication technologies.
Networked drones can unleash disruptive scenarios in many application domains. At the same time, to really capitalize their potential, accurate modeling techniques are required to catch the fine details that characterize the features and limitations of UAVs, wireless communications, and networking protocols.
To this end, the present contribution proposes the Internet of Drones Simulator (IoD-Sim), a comprehensive and versatile open source tool that addresses the many facets of the IoD. IoD-Sim is an Network Simulator 3 (ns-3)-based simulator organized in a 3-layer stack, composed by
(i) the Underlying Platform, which provides the telecommunication primitives for different standardized protocol stacks,
(ii) the Core, that implements all the fundamental features of an IoD scenario, and
(iii) the Simulation Development Platform, mainly composed by a set of tools that speeds up the graphical design for every possible use-case.”
The following are the interesting aspects and feature of IoD_Sim mentioned in [1]
- Open source code
- Modularity
- Scalability
- Visual scenario configuration
- Network simulations
- Support multiple networking standards
- Multi-stack protocols support
- Graphically-assisted trajectory design
- Aerodynamics simulations
- Power consumption models
- Hardware in the Loop (HitL) support
- High-level application development support
- Ready-to-use IoD applications
- Machine-readable results
- Human-readable results
The following is the outline of the IoD_Sim Architecture provided in [1]
The following diagram from [1] shows the Logical flow of execution of a scenario under IoD Sim.
IoD_Sim
IoD_Sim is an open source and system-level simulator for the IoD (Internet of Drones). I is developed on top of the well-known ns-3 (Network Simulator 3), it implements the key networking elements (drones, network access points, and Zone Service Provider), a standard-compliant communication stack based on the IEEE 802.11 technology, and scenarios with various mobility models[1][2].
As mentioned in [2], IoD_Sim is primarily compatible with Linux-based operating systems. One can test it on macOS, altough the original authors are not focused on providing first-class support for it. For macOS, Windows, or any other operating system, they encouraged to use Docker, WSL or any other (pseudo)virtualization platform that can provide a stable Linux-based work environment.
Airflow[3]
IoD-Sim includes Airflow, a high-level visual configuration environment that drastically eases the interaction between the user and the simulator, i.e., scenario set-up and management[1]. It is a Visual Programming Editor ad-hoc for IoD_Sim.
Installation Steps
Step 1: Install git
$ sudo apt install git
Step 2: Cloning the IoD Sim repository
Now we can clone the IoD_Sim repository from[2]
$ git clone https://github.com/telematics-lab/IoD_Sim.git
The flowing screenshot shows the completion of the cloning of IoS_Sim repository.
Step 3: Install dependencies.
All the dependencies of ns-3 as well as the IoD_Sim can be easily installed using the scripts provided with the previously cloned IoD_Sim project.
$ ./tools/install-dependencies.sh./tools/install-dependencies.sh
The flowing screenshot shows the starting of the dependency install.
Step 4: Cloning the ns-3
the Original ns-3 project can be easily cloned inside the IoD_Sim folder using the scripts provided with the previously cloned IoD_Sim project.
$ ./tools/prepare-ns3.sh
Step 5: Configure ns-3 with IoD_Sim
We should configure ns-3 as follows:
Step 6: Building ns-3 with IoD_Sim
After successful configuration, now we can build the ns-3 – so that the newly compiled ns-3 will have IoD_Sim functionalities in it.
Step 7: Testing the Working of IoD_Sim
Now we can run the iodsim simulator with the example scenario that is described in a JSON format configuration file.
$ ./ns3 run “iodsim –config=../scenario/simple_wifi.json”
Visualization of IoD_Sim
Installing NetSimulyzer for Visualising IoD_Sim FANET in 3D.
Conclusion
References
- Giovanni Grieco, Giovanni Iacovelli, Pietro Boccadoro and Luigi Alfredo Grieco “Internet of Drones Simulator: Design, Implementation, and Performance Evaluation”,arXiv:2203.13710v1 [cs.NI] 25 Mar 2022
- https://github.com/telematics-lab/IoD_Sim
- https://github.com/GiovanniGrieco/IoD_Sim-airflow