The purpose of this minimalist simulator is to enable new driverless developers at eForce Prague Formula, to get familiar with our ecosystem and to unleash their creativity along with competitive spirit, as these values define the core values of the Formula Student competition. We have decided to release the microsim to the public, creating an opportunity for anyone to calibrate and develop upon our basic stack.
- Clone this repository onto a machine with Linux or macOS, do it over SSH for easier access (that is what you will be using once you start developing the full system) 1.5. Cloning the repository for Windows system is possible, however you must first install WSL (Windows Subsystem for Linux) and requires a little longer setup.
- Make sure to have python >= 3.10 installed (ideally 3.11 - 3.12). On macOS, use homebrew exclusively for all packages. On Ubuntu, install it using deadsnakes. Other Linux distros usually have good package managers with latest python versions (Fedora, Manjaro, Arch).
- Activate you venv if applicable or make sure your python is aliased under
python - Run
python -m pip install -r requirements.txtto install the required packages - run
python run.pyto start the simulation with evaluation
While the animation is running, you can press q to hide it or e to quit the whole program. After the simulation, a summary panel is shown. Press any key to close it and continue with the next map. You can press s to save the summary plot to an image.
run.py- Main runner script for the simulationgains.py- PID controller gains, which you will be tuningmission.py- Mission file for the simulation, which you will be implementingbin/- Contains the binary files for the simulatorhelpers/- Contains all driverless algorithms and simulator codemaps/- Contains all the maps for the simulator
While running the simulation, a log folder will be automatically created with csv files containing logs of the simulation for each of the maps.
You can disable this by running the simulation with the --no_log flag.
- Implement the
mission.pyfile to successfully drive around the track - Tune the PID controller in the
gains.pyfile to achieve the best performance - Be the fastest around the track!
- Fix the PID controller first
- Tune the path tracking constants
- Improve, reimplement or keep the path planning algorithm
- Think about how you could improve the path for the speed planning algorithm (adding more points?)
Have fun!
- https://thomasfermi.github.io/Algorithms-for-Automated-Driving/Control/ControlOverview.html
- https://www.ni.com/en/shop/labview/pid-theory-explained.html
- https://blogs.mathworks.com/student-lounge/2022/10/03/path-planning-for-formula-student-driverless-cars-using-delaunay-triangulation/
- https://www.youtube.com/watch?v=U6vr3iNrwRA&list=PLgnQpQtFTOGQrZ4O5QzbIHgl3b1JHimN_
- https://numpy.org/
- https://docs.python.org/3.11/
- https://dspace.cvut.cz/handle/10467/101617

