# A Systematic Review of Perception System and Simulators for Autonomous Vehicles Research
## 5 Simulation
### Robotics Simulators  
Robotics simulators are also used in the simulation of autonomous vehicles. Different works [77; 78; 79] mention that to be able to consider a robotics simulator useful in the domain of autonomous vehicles, they must provide modeling of all sensors and actuators present in an autonomous vehicle. They must also provide an environment as realistic as possible to simulate and test algorithms of acquisition and fusion of data from the sensors, navigational planning, and control of the steering and traction system. Bearing this in mind, the following criteria represent the most important aspects to consider when selecting a robotics platform in an autonomous vehicle approach:  
* 3D rendering: The visual robustness of the simulation
* License: Whether the simulator has a General Public License (GPL), or a commercial one
* External Agent Support: In order to control a vehicle using an agent-based methodology, the simulator should feature a distributed architecture at the control level
* Sensor noise: Simulators that are able to calculate random noise at the outputs of the sensors will allow for more realistic testing of the decision-making systems that need to deal with non-ideal nature that real sensors have
* Parallelism/Distribution: In order to distribute processing power over processor cores or networks
* Level of Maturity: If the simulator is already widely used and validated
* Fault-tolerance: When a hardware module fails, higher level modules should rapidly make decisions whether to stop or modify the control system. When developing a final product, such behavior should be strictly tested
* Realistic Scenario Simulation: The level of realism to simulate difficult context scenarios e.g., snow, day and night, and wind, not only interactively but also physically, i.e., affecting the sensorial input:
* Environment affecting sensors--harsh weather conditions and hazardous terrains can affect sensors in various ways; for example, fog or darkness affecting the visibility of an optical camera, or intense weather causing echoes in laser scanners. Simulators might include these factors in the calculation of sensor values
* Environment affecting physics--weather and ground conditions can also affect the performance and control of the vehicle in various ways; for example, loose gravel, rain, or snow making the roads more slippery
* Techniques for HIL simulation have been recently applied to the automatic generation of complex controllers for robots. A robot uses its own real hardware to extract sensor and actuation data, then uses this data to infer a physical simulation (self-model) containing aspects such as its own morphology as well as characteristics of the environment. Algorithms such as Back-to-Reality (BTR) and Estimation Exploration (EEA) have been proposed in this context. One of the key aspects to take into account when selecting a robotic simulation framework is the type of compatible sensors and implementation of their mathematical model. Some current robotics simulation platforms incorporate data simulation sensors such as Gazebo [80], V-REP [81], or Webots [82] (see Table 4 for a broader list). Another aspect to take into account is the widespread use of some frameworks or middleware in robotics (for example, ROS [83] or YARP), which make use of simulators conditioned by the characteristic of being compatible with the middleware. The Robot Operating System (ROS) is a mature and flexible framework for robotics programming. ROS provides the required tools to easily access sensors data, process that data, and generate an appropriate response for the motors and other actuators of the robot. The whole ROS system has been designed to be fully distributed in terms of computation, so different computers can take part in the control processes, and act together as a single entity (the robot). Gazebo [80] is an open source simulator that offers the ability to simulate robot systems in complex environments. It is one the most popular simulation platforms for the robotic simulation research work.