=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

§5 Candidate Simulation


After getting all documentation procedures done, it is time to start thinking about the implementation. There are several approaches for an integrated network and robot simulation, this type of simulation can be done by co-simulation (two or more simulators working at the same time), by expanding a physical simulator to have network features, by expanding a network simulator with physical/robot features or by creating a new simulator from scratch.

We opt to expand a network simulator, using OMNeT++/INET network features and implementing the robots' physical movement and the cooperative/individual control. We made this choice taking in account the following factors:

➤ The researchers in this project have more experience in robot/control implementations;
➤ We could assume the network already valid, as several works use OMNeT++/INET's default network in their works;
➤  OMNeT++ is a discrete event simulator (with network features through INET) that accept C/C++ codding, making it easier to implement/translated MATLAB codes and to use known mathematical libraries;
➤ We had access to MATLAB implementations of the cooperative control strategies (without network implementation) to validate and to compare the results with a complete network.

Note: We believe it is possible to use the method for co-simulations or for expanded robot simulations, however some adjustments may be necessary. E.g.:  for co-simulation, the simulator's synchronization may have influence on results and should be investigate separately; for expanded robot simulation, the network should be validate with a real network or with a valid network from another accurate simulator.

Simulation Quality


When the simulation is complex and have a entire team on the same project, it is a good practice to use the concept of quality measurement for the simulation. This is a simple process where the project leader, the specialist or a review of the previous documentation process, determines what is necessary for the study and what are desirable characteristics that would improve the simulation quality/reality [2]. According with these criteria, a score is given for each aspect and its total should reach a acceptable total quality score.

Some quality aspects may be of interest in this procedure such as: dependency, functionality, interoperability, modularity, performance, support, portability and precision.

The resulting total score for the simulation should not be binary (correct/incorrect). It may be classified in several quality levels, which the best level should correspond to the best achievable simulation (and not an idealized one).

A board may be build to help evaluate the simulation (figure bellow). The quantity score could be the mean of  the aspects scores, resulting in an quality score that defines the simulation. It is also important to define which quality score is acceptable. For example, we may determine that a "Good" simulation quality is sufficient enough for the selected study.

- Example of Quality Evaluation 

The evaluation should be done by an external person (if possible) after the simulation implementation, and the resulting quality will determine if the simulation needs further work or not.

Implementation


We opt to use OMNeT++/INET simulator to make our simulations. Actually, OMNeT++ is a discrete event simulator, but with INET add-on, the simulator have a complete network at disposal. It is possible to see what is happening in each network layer, in exchanged messages and in each program algorithms (variables / parameters).

Regarding simulation structure, we use the standard UDP/IP network from the simulator. We had to re-implement node's mobility model and had to address to robot's position visual updates. As for robot's algorithms, both cooperative control and topology control are in the application layer of each robot network model.  

Simulation details:

  • Ubuntu 14.04.5 (Kernel 3.13.0-95 generic) on a Virtual Machine
  • OMNeT++  4.6
  • INET Add-on 2.5
  • Quadprog 1.2.1 (C++ Library for Quadratic Optimization)
Note: We strongly advice in building a new simulation with updated software and libraries. This is in our future work plans. 

- Robots Simulation on OMNeT++/INET

Evaluation Parameters 


The choice of evaluation parameter (EP) is essential and it is directly connected to the robots' cooperative task and with study objective [3]. These parameters should be indicators of how good is the robots behavior or an indicator of how efficient they were in completing the cooperative task.

EPs should be defined before building the simulation as it may require a complex implementation effort to add/change it later. EPs can be [4]:

➤  Direct or Indirect: if parameters are obtained direct from the simulation (in "real time") or if they depend of a set of another parameters and can be obtained only after all simulation data are gathered;
➤  Quantitative or Qualitative: defined if they have can be measured by numbers or not. E.g.: a qualitative parameter that indicates if the task was successful or not (true/false);
➤ Controllable or Non-Controllable: if they can be translated as the real system actions or not;   

As we will see in the next steps, we use a statistical validation/evaluation process that requires at least one quantitative evaluation parameter (direct or indirect).

Example: for a group of robots in a rendez-vous task, we use convergence time and convergence point as evaluation parameters (and when we do not have a reference point passed to robots).

In some cases it is also important to establish a stop criteria, or in other words, a parameter and a parameter value that determines when the simulation is finished. This criteria should be the same for all simulations in the same study.

Example: following the previous example case, if we are evaluating the convergence time, we need to establish when robots have "converged". It may be solved by a parameter that observe if all robots are inside a circle radius or with certain standard deviation from each other, rising a stop flag when they are.


References

[1] LORA, M. et al. (2015) Simulation alternatives for the verification of networked cyber-physical systems. Microprocessors and Microsystems 39 (2015) 843-853.
[2] Balci, O. "Introduction to Modeling and Simulation". Class Slides, ACM SIGSIM, Available in <http://www.acm-sigsim-mskr.org/Courseware/Balci/introToMS.htm>,  2013.
[3] Kudelski, L. M. et al. “RoboNetSim: an integrated framework for multi-robot and network simulation”, in Robotics and Autonomous Systems 61, 483-496, 2013.
[4] Law, A. M. “Simulation Modelling and Analysis”, McGraw-Hill, 5th Edition, pp. 804, 2015.

Page Release: 08/05/17
Last Update: 08/05/17