# A Free Simulation Environment Based on ROS for Teaching Autonomous Vehicle Navigation Algorithms
## 1 Introduction
### Algorithms for Autonomous Driving  
In education, the different platforms designed and tested to teach various robotics topics include electronic platforms such as, LEGOTM, Arduino, and Raspberry Pi. In particular, the LEGOTM platform has been used to teach robotics, but it has some limitations regarding autonomous driving subjects. The LEGOTM control unit (Brick module) can be programmed using standard LEGOTM block-based software or other open-source programming languages. However, block-based software requires considerable programming experience, limiting the complexity of the program and the learning ability of the algorithms. On the other hand, vision-based control is critical for autonomous driving. For example, the LEGOTM platform lacks a suitable camera. Furthermore, its hardware is not powerful enough to process images in real-time. [PERSON] et al. [14] designed a platform to teach Robotics using the LEGOTM platform combined with Raspberry Pi, MatlabTM, SimulinkTM, a low-cost webcam, and an external power source. Unlike the standard LEGOTM platform, this new design provides enough computing power to evaluate image data in real-time. The operation starts when the Raspberry Pi emulates the UART communication protocol on the LEGOTM platform and transmits the continuously calculated control inputs. A Pi-sensor controller transfers control input to LEGOTM motors. Finally, MatlabTM and SimulinkTM allow for the implementation of the autonomous driving algorithms on the Raspberry Pi card and robot control. The main advantage of this system is the possibility to add several sensors. The authors outline the limitations of their system (such as the lack of a camera) for teaching autonomous driving. Today, there are various navigation algorithms with distinct characteristics and functions. When teaching, it is pertinent to compare the different algorithms to analyze their behavior and performance, but it is not always possible because the scenarios and test conditions are not the same. [PERSON] and [PERSON] [15] conducted a performance analysis of three navigation algorithms: Dynamic-Window Approach (DWA), Timed Elastic Band (TEBand), and Elastic Band (EBand). The authors compare the performance of these three local plan ners using ROS software. The experiment was conducted in a selected area, approximately 145 m\({}^{2}\) of the first floor of the main building at the School of Engineering of Chiang Mai University. The performance of the three algorithms was analyzed by navigating the robot on four pre-defined trajectories. For each algorithm, the robot performed 20 tests divided into two sections on the path. The first ten tests were conducted in an unobstructed scenario, and the subsequent ten tests in the same scenario with obstacles. The study concluded that the tracking accuracy values of the DWA and TEBand algorithms are higher than those of the EBand algorithm. Likewise, considering the average time taken to complete the journey, the results showed that the DWA algorithm took less time to complete the route than the TEBand algorithm. Although the EBand algorithm generates the shortest route, the maximum speed generated is less than the maximum speed set. Finally, the position and orientation errors measured at the target location showed that the EBand algorithm has greater precision, and the TEBand algorithm had the maximum error deviation. However, the disadvantages of this research for teaching are that students require access to the real robotic platform and a large open space to perform tests with the robot. [PERSON] and [PERSON] [16] compared four different local route planning algorithms: Base Local Planner, DWA, TEBand, and EBand. The experiments were carried out using a front laser sensor and a rear laser sensor. A 3D-depth camera was added for the evaluations.