# A Free Simulation Environment Based on ROS for Teaching Autonomous Vehicle Navigation Algorithms
## 1 Introduction
### Autonomous Driving in Robotics  
Autonomous driving is a method that consists of operating a vehicle without active driver control. It involves multiple variables for the proper operation of the mobile robot such as reading sensors, following a trajectory, maintaining a safe distance from other vehicles or obstacles, and speed control, among others.  
Because this subject has paved the way for thousands of applications in daily life, industry, commerce, and more, research related to autonomous driving has increased in recent years. STEM courses have garnered more interest in different topics related to robotics, such as teaching and applying autonomous driving models. However, developing teaching strategies that facilitate knowledge acquisition in an innovative way to put concepts and theory into practice has proven challenging for robotics teachers [11].  
One of the relevant autonomous vehicle components is sensors. In autonomous vehicles, these include cameras, LiDAR radar, sonar, global positioning systems (GPS), an inertial measurement unit (IMU), and wheel odometry. The sensors collect data to be analyzed by the computer of the vehicle to control its direction, speed, and braking. However, sensor fusion is also applied in autonomous vehicles, combining data from disparate sources to assemble information coherently. The resulting information is more reliable when these sources or sensors are used individually. This approach is essential when combining different types of data. For example, it is crucial to have a camera to clone human vision in autonomous vehicles. However, it is preferable to obtain distance data from sensors such as LiDAR or radar. Therefore, the combination of camera sensors and LiDAR or radar data is essential. Moreover, combining LiDAR and radar data provides quantifiable information on the distance between an obstacle and the vehicle, or the distance from different objects in the environment [12].  
Likewise, another crucial consideration in operating autonomous vehicles is the algorithms that process sensor data for decision making. [PERSON] et al. [13] developed a series of algorithms for a commercial vehicle. The vehicle had to perform the following tasks: unsupervised laser calibration, mapping and localization, object recognition, and trajectory planning. Unsupervised laser calibration required a multi-beam laser to retrieve the optimal parameters for each beam's orientation and distance-response function. This method allows for the simultaneous calibration of tens or hundreds of beams, each with specific parameters. In addition, the extrinsic position of the sensor in relation to the robot's coordinate frame is recovered. Importantly, no specific calibration objective is required; it is based solely on the weak assumption that points in space tend to be on contiguous surfaces.  
For mapping and location tasks, data from GPS, IMU, and LiDAR sensors can generate a high-resolution terrain map of the vehicle's location. The maps used in vehicles are grid-based orthographic projections of LiDAR remittance responses on the ground plane.  
Regarding object recognition, each LiDAR scan was first segmented using depth information. The segments were inserted into a standard Kalman filter that includes position (x, y) and velocity (x', y') in their variable states. The path classification was executed by applying two separate boosting classifiers: one indicating the object's shape in each path frame and another using motion descriptors along the entire path. These predictions were combined using a discrete Bayes filter. The test results were favorable since the vehicle drove along routes autonomously for hundreds of miles under different conditions. However, the driver must always be present for safer driving, considering that some driving must also be performed manually upon the occasion [10].