Skip to content

Installing Internet of Drones Simulator (IoD_Sim) in Debian

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 DockerWSL 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.

$ cd ~/cd IoD_Sim
$ ./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.

$ cd ~/cd IoD_Sim
$ ./tools/prepare-ns3.sh
The flowing screenshot shows the completion of the cloning of ns-3 repository (here it is the version ns-3.38)

Step 5: Configure ns-3 with IoD_Sim

We should configure ns-3 as follows:

Hidden Section! Contact Charles  

The key/passphrase will be given once you have been approved for getting paid research support/assistance from Charles. To get paid support, you may start a 'free' research discussion.  

WhatsApp chatDiscuss Through WhatsApp
 

The flowing screenshot shows the modules configured for compile.

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.

$ ./ns3 build
The flowing screenshot shows the end of successful build operation.

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.

$ cd ns3/
$ ./ns3 run “iodsim –config=../scenario/simple_wifi.json”
The following terminal output shows the successful run of the simulation (with a deprecation warning message).

Visualization of IoD_Sim

It is possible to visualize and IoD_Sim in 2D as well as 3D.
The following article addresses the 2D and 3D visualization of IoD_Sim
.

Installing NetSimulyzer for Visualising IoD_Sim FANET in 3D.

Conclusion

Unlike other FANET/UAV related ns-3 extensions,  IoD_Sim is a simulator written in on ns-3. By supplying a JSON format configuration file, we can run a FANET/UAV simulation with more accuracy. Airflow is the tool used to create such FANET scenario. We will explore the usage of Airflow in another article.

References

  1. 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
  2. https://github.com/telematics-lab/IoD_Sim
  3. https://github.com/GiovanniGrieco/IoD_Sim-airflow

 

WhatsApp Discuss Through WhatsApp