Autonomous Driving project for Euro Truck Simulator 2 Running on Real World
Over the course of two years,
:warning: Currently, we are participating in several competitions with this project; therefore, it is not possible to share a new version of the project as open source. However, in the meantime, we will share some files and instructions to demonstrate our knowledge. This project shows us power of simplifying and cleaning data.
In this video, the program processes the image of the screen, gives it to the artificial intelligence model, turns the steering wheel according to the result.
I drove the vehicle for 1 hour and also collected data and saved them in a CSV file. I trained the data in the CSV file using the method and model in this link.
The model gives us a pixel value equal to the steering angle of the steering wheel. Then the mouse is moved to this pixel value.
There are things you need to do before running codes:
python -m pip install -r requirements.txt
c_rsteersens 0.325500
Move game window top-left corner (or full screen) and make the steering wheel centered. Press F1 and stop game, run the code and turn back to game. Code will take over steering control. You must not move your mouse before code start. (Press F1 to stop the code) (Hold "Z" to pass to left lane, hold "X" to pass to right lane)
They were driving the car using only the A and D keys. It was working with bunch of if-else' instead deep learning.
:exclamation: Not compatible over 1.40. SCS has changed the way mouse steering works. I wrote new controller that can be used with newer versions of ETS2, but I am hesitant to release it due to fear of being sued.
Not compatible over 1.40. Because high beams don't affect shadows.
Shadows can confuse the model (for example this clip). To avoid this you can use high beams.
The supervised learning model is powerful as dataset. If you use 5 or 10 hours of driving footage instead of 1 hour, the model performance will increase amazingly.
If I do it before you do, I'll upload the model here ;) Now I am trying to reduce dataset size while increasing accuracy
Special thanks to r/trucksim and r/Python.