Yutong-gannis / ETSAuto

🚚 ETSAuto is an Advanced driver Assistance System applied in Euro Truck Simulator 2, performing the functions of Lane Centering Control (LCC) and Auto Lane Change (ALC).
MIT License
172 stars 24 forks source link
adas autonomous-driving computer-vision cuda deep-learning euro-truck-simulator-2 python self-driving-car
![GitHub](https://img.shields.io/github/license/Yutong-gannis/ETSAuto) ![python3](https://img.shields.io/badge/python3-pass-green) ![pr](https://img.shields.io/badge/PRs-welcome-brightgreen) ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/Yutong-gannis/ETSAuto) ![docs](https://img.shields.io/badge/docs-latest-blue) ![GitHub Repo stars](https://img.shields.io/github/stars/Yutong-gannis/ETSAuto) ![languages](https://img.shields.io/github/languages/top/yutong-gannis/ETSAuto) ![GitHub forks](https://img.shields.io/github/forks/Yutong-gannis/ETSAuto) ![GitHub release (with filter)](https://img.shields.io/github/v/release/Yutong-gannis/ETSAuto) ![GitHub tag (with filter)](https://img.shields.io/github/v/tag/Yutong-gannis/ETSAuto) ![GitHub issues](https://img.shields.io/github/issues/Yutong-gannis/ETSAuto) ![GitHub closed issues](https://img.shields.io/github/issues-closed/Yutong-gannis/ETSAuto) ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Yutong-gannis/ETSAuto)
[įŽ€äŊ“中文](https://github.com/Yutong-gannis/ETSAuto/blob/v2.x/README_ch.md) | English

Table of Contents

Introduction

ETSAuto 2 is an autonomous driving system for Euro Truck Simulator 2, which includes Lane Centering Control (LCC), Lane Change Assistance (ALC), and Forward Collision Warning (FCW) features. ETSAuto 2 is built in pure Python and runs on Windows system. It uses the ONNXRuntime for inference (also supports the TensorRT inference framework) and currently offers acceleration on Nvidia GPUs, with future support for AMD GPUs. In terms of perception, it achieves a response rate of less than 0.05ms and uses pure pursuit for vehicle control.

Features

Scenario Support Description
Daytime ✓ All features supported
Nighttime ✓ Not recommended for high-speed lane changes
Highway ✓ No longitudinal planning; deceleration required when exiting the highway
City Roads ✓ Intersection functionality disabled; no lane markings or curbs on both sides
Rural Roads ✓ No lane markings or curbs on both sides
Feature Support Description
Lane Centering Control (LCC) ✓ v < 80km/h
Lane Change Assistance (ALC) ✓ 15km/h < v < 80km/h
Forward Collision Warning (LCW) ✓
Adaptive Cruise Control (ACC) ✗

Environment Setup

For environment setup, refer to BUILD.md

Considering compatibility with graphics cards, from version 2.0 onwards, ONNX Runtime will be mainly used for inference. Nvidia graphics cards are currently supported, and support for AMD graphics cards is planned. However, since there is no AMD graphics card available at the moment, developers are encouraged to attempt building on AMD graphics cards. The project still retains the interface for TensorRT inference to ensure necessary perception response rates. Due to reasons related to screen capture and vjoy control programs, the program currently supports only Windows. Developers are welcome to provide alternative solutions for these two codes on Linux systems.

Usage Instructions

Plans

References

pyvjoy

Bev-Lanedet

ets2-sdk-plugin