# IoTactileSim: A Virtual Testbed for Tactile Industrial Internet of Things Services
## 2 Proposed Framework
### Topological View of the IoTactileSim  
This section focuses on the architecture of the proposed IoTactileSim testbed as depicted in Figure 6. At first, we discuss the parameter initialization, settings, and user  
Figure 6: The flowchart illustrating the overall flow of the IoTactileSim testbed dynamics and relationship between different parts. interface to interact with the proposed testbed. Second, the topological view of the core network architecture is presented. Third, an in-depth discussion on application-agnostic design with the application and network connectivity is reported. Initialization: In the initialization module, the simulator reads the parametric configuration files. It sets packet size, packet rate, Internet Protocol (IP) suite, IP address, link bandwidth, and link latencies. This module facilitates the users to provide the parameter settings as per their experiment need. If the user does not provide the parametric settings, then it automatically uses the default values of the parameters, as defined in Table 2.  
Start Network Emulator: In order to design a real-world network, a Mininet emulator creates a custom topology with five OVSs and three hosts. The hosts act as a standard computing machine and are responsible for the master domain, slave domain, and tactile support engine. The OVSs are connected with a single SDN controller. The SDN controller decides to handle the data plane and allows the network operator to control and manage the whole network via API provided by the Mininet. Therefore, we utilized the Mininet Python API in IoTactileSim, so that the users can change the network settings as per their experiment demands to evaluate their newly developed approaches. The users can change the parametric values from the configuration files as discussed earlier in the initialization step. Simulation Cycle: After creating the network topology with three hosts that work as a master, slave, and tactile support engine, the simulator enters into the simulation cycle. In the simulation cycle, the actual experiments are performed as per defined conditions by the users through parametric settings or default values. The network host that acts as the master side, connects to the haptic device that the human operator uses to send the control signals to the salve side manipulator. The other host acting as a slave, connects to the CoppeliaSim simulator for executing the control commands in the designed virtual/physical tactile IIoT applications. After conducting a desired control experiment, the haptic feedback is \begin{table}
\begin{tabular}{l c} \hline \hline
**Parameters** & **Settings Used** \\ \hline \multicolumn{3}{c}{Simulation environment} \\ \hline Operation system & Linux (Ubuntu 18.04) \\ Programming language & Python 3.8 \\ Network emulator & Mininet 3.6.9 \\ Industrial robotic simulator & CoppeliaSim 4.2 \\ \hline \multicolumn{3}{c}{Network emulator} \\ \hline Network topology & Mesh network of switches \\ IP suite & User datagram protocol \\ Software switch type & Open vSwitch 2.9.8 \\ SDN controller & OVS-controller \\ Interface protocol for controller & OpenFlow \\  & Shortest route 1.2 ms \\ Link latency & Longest route 1.8 ms \\ Link bandwidth & 100 Mbps \\ No. of packets & 10, 100, 1000, 10,000 \\ Packet sampling Rate & 1 kHz \\ \hline \multicolumn{3}{c}{Industrial robotic simulator} \\ \hline Remote API & Python legacy remote API client \\ Simulation mode & Real-time simulation \\ Execution techniques & Same machine with the same thread \\ Interaction network & Socket communication \\ Simulation scene model & Custom design (Teleoperation) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Summary of parameters and settings used for Simulation. sent to the human teleoperator at the master domain. This loop runs until the simulator reaches the defined threshold values like 1000 packets, etc. Finally, at the end of the simulation cycle, the simulator stores the experimental results into a file to investigate various network impairments.