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

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
 

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.

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 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
WhatsApp Discuss Through WhatsApp