Skip to content

Simulating And Visualizing 3D Flying Ad-hoc Network (FANET) Under Omnet++

The Flying Ad-hoc Network (FANET)

FANET  has emerged as an alternative access technology for regions that have no fixed infrastructure or are hard to reach. It is a group of UAVs communicating with each other with no need to access point, but at least one of them must be connected to GCS (Ground Control Station). FANET is a self-organizing wireless network that enables inexpensive, flexible, and easy-to-deploy flying nodes, such as unmanned aerial vehicles (UAVs), to communicate among themselves in the absence of fixed network infrastructure. 

 

We can simulate realistic FANETs using Omnet++. In this article, we will see the way of simulating a  FANET of Quadcopters that are roving above a landscape.  For every Omnet++ simulation, we will need two main files one is a network description file and the other is a configuration file.

The Network Description File

The following code segment presents the important components of the file “MobileFANET.ned” which is used to describe our FANET.

network MobileFANET
{

parameters:

int numHosts;

 

submodules:

visualizer: IntegratedVisualizer {
@display(“p=100,50”);
}

host[numHosts]: WirelessHost {
@display(“i=misc/node_vs”);
}

configurator: Ipv4NetworkConfigurator {
parameters:
@display(“p=100,250”);
}
radioMedium: Ieee80211ScalarRadioMedium {
parameters:
@display(“p=100,350”);
}

}

 

The Simulation Configuration file

The following are important sections and lines of the  [Config MobileFANET]  of the file “omnetpp.ini”.

 

The Scene Visualization with Integrated OSG Visualizer

The following section of code shows the way of configuring the integrated OSG Visualizer

Sorry!!!. Some sections are hidden; because, you are only having restricted access to this article.

While getting paid support/assistance for your research from Charles, you may get an access key/password to some articles. If you are having the access key/password to this particular article, then please enter it below to unlock the restricted section of this article.

If your research is related to this area, and you want to get paid support/assistance from Charles, then you may start a 'free' research discussion with Charles.

A 3D scene without a scene image will look as follows

 

After configuring the scene with a suitable ground image, then the 3D scenario will be like as follows:

 

Disable  Displaying Module Name

The following section of code shows the way to disable showing module names during the visualization.

 

# network node visualization: disable labels
*.visualizer.osgVisualizer.networkNodeVisualizer.displayModuleName = false

Setting the FANET node Image

The following section of code shows the way of setting the 3d image of the FANET hosts in the network.

Sorry!!!. Some sections are hidden; because, you are only having restricted access to this article.

While getting paid support/assistance for your research from Charles, you may get an access key/password to some articles. If you are having the access key/password to this particular article, then please enter it below to unlock the restricted section of this article.

If your research is related to this area, and you want to get paid support/assistance from Charles, then you may start a 'free' research discussion with Charles.

The following screenshot shows the closeup view of the three-dimensional Quadcopter image.

 

Enabling Mobility Visualization

The following section of code shows the way to enable mobility visualization.

# mobility visualization
*.visualizer.*.mobilityVisualizer.displayMobility = true # master switch
*.visualizer.*.mobilityVisualizer.displayPositions = true
*.visualizer.*.mobilityVisualizer.displayOrientations = true
*.visualizer.*.mobilityVisualizer.displayVelocities = true
*.visualizer.*.mobilityVisualizer.displayMovementTrails = true
*.visualizer.*.mobilityVisualizer.animationSpeed = 1

Setting up FANET Node Mobility

The following section of the code shows the way to setup MassMobility in all the FANET nodes

 

*.host[*].mobility.typename = “MassMobility”
*.host[*].mobility.orientationComposition = “faceForward”
*.host[*].mobility.changeInterval = 1s
*.host[*].mobility.initialMovementHeading = uniform(0deg, 360deg)
*.host[*].mobility.initialMovementElevation = uniform(-90deg, 90deg)
*.host[*].mobility.angleDelta = uniform(-10deg,10deg)
*.host[*].mobility.rotationAxisAngle = uniform(-10deg,10deg)
*.host[*].mobility.speed = uniform(10mps,20mps)
*.host[*].mobility.faceForward = false

The mobility visualization with movement trails will show the movement of the Quadcopters with its movement trails.

 

Enable Packet Drop Visualization

The following section of code shows the way of enabling the packet drop visualization

*.visualizer.*.packetDropVisualizer.displayPacketDrops = true
*.visualizer.*.packetDropVisualizer.labelFormat = “%n/reason: %r”
*.visualizer.*.packetDropVisualizer.fadeOutTime = 3s

Enable Displaying Signal Propagation

The following section of code shows the way of enabling the signal propagation animation.

 

#Display Signal Propagation

*.visualizer.*.mediumVisualizer.signalPropagationAnimationSpeed = 500/3e8
*.visualizer.*.mediumVisualizer.signalTransmissionAnimationSpeed = 50000/3e8
*.visualizer.*.mediumVisualizer.displaySignals = true
*.visualizer.*.mediumVisualizer.displayTransmissions = true
*.visualizer.*.mediumVisualizer.displayReceptions = true
*.visualizer.*.mediumVisualizer.transmissionPlacementPriority = 10
*.visualizer.*.mediumVisualizer.receptionPlacementPriority = 10

# showing propagating signals
*.visualizer.*.mediumVisualizer.displaySignals = true
*.visualizer.*.mediumVisualizer.signalFadingDistance=50m
*.visualizer.*.mediumVisualizer.signalRingSize=50m
*.visualizer.osgVisualizer.mediumVisualizer.signalShape = “both”

The following screenshot shows an expanding 3D sphere on a  Quadcopter to denote the transmission of the radio signal.

 

The Final Output of the 3D FANET Network with 15 Quadcopters

The following video shows the 3D Network Animation of the proposed simulation.

Note: Enabling the signal propagation animation will slow down the simulation speed. So during research-level batch simulations, we may need to disable signal propagation animation. Further, in this example simulation, Wireless Hosts are used. But we may need to use Ad hoc Nodes and ad hoc routing protocols in a typical VANET simulation.

In the following articles, we will show the way of doing UWSN simulation using Omnet++:

Simulating and Visualizing 3D Underwater Wireless Sensor Network (UWSN) Under Omnet++

In the following articles, we will present out CircleMobilityModel and Spring Mobility Model:

 

References:

  1. https://sq.wikipedia.org/wiki/FANET
  2. https://ieeexplore.ieee.org/document/8277614
  3. https://inet.omnetpp.org/docs/showcases/visualizer/osg/networknode/doc/index.html

For Assistance in Protocol Implementation, Simulations & Analysis of Industrial as well as Scholarly Research Works, you may Contact Us.

WhatsApp chatDiscuss Through WhatsApp

Call 91 9843779735

Send an e-Mail Message.




This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.

WhatsApp Discuss Through WhatsApp