Giter VIP home page Giter VIP logo

kochlisgit / noise-adaptive-driving-assistance-system Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 6.48 MB

Noise-Adaptive Driving Assistance System (NADAS) using Deep Reinforcement Learning, State-Estimation & State Representation

License: MIT License

Python 12.41% Jupyter Notebook 87.59%
adaptive-cruise-control adas autonomous-vehicles carla-simulator deep-reinforcement-learning lstm-neural-networks neural-networks noise-filtering ppo proximal-policy-optimization

noise-adaptive-driving-assistance-system's Introduction

Noise-Adaptive-Driving-Assistance-System

Noise-Adaptive Driving Assistance System (NADAS) using Deep Reinforcement Learning, State-Estimation & State Representation. In this project, we construct an Adaptive-Cruise-Controller for the CARLA environments, using Deep Reinforcement Learning. We also include the files for the implementation of a Lane-Keep-Assistance (LKAS), which however is still in experimental phase.

Artificial Noise and data corruption has been added, in order to make a challenging driving environment, as well as increase the generalization cabability of the agents. To address noisy measurements and data corruption, we emply three techniques:

  1. A State-Estimation algorithm
  2. A State-Representation method using Stacked-States
  3. A State-Representation method using LSTM as an alternative

The learning algorithm of the ACC controller is Proximal-Policy-Optimization (PPO) (https://arxiv.org/abs/1707.06347), with the option of adding LSTM neural networks. To ensure the feasability of our approach, we also conducted response time benchmarks on Raspberry Pi 4.

Perception

The vehicle uses 2 front cameras: A semantic segmentation camera and a depth camera. These are manually calibrated in order to have the same focus, field of view and perspective. Then, the frames of the 2 images as combined.

Perception

Paper

(To be submitted)

Proximal-Policy-Optimization

PPO

State-Estimation

State-Estimation

State-Representation (State-Stacking / LSTMs)

State-Stacking

NADAS

NADAS

ACC Experiment Results

NADAS

Requirements

You need to download Carla 0.9.13, as well as Python 3.7. The python version is important, as this version of CARLA works only with Python 3.7. Additionally, you will need to download and install the following requirements:

  • Python 3.7
  • Carla 0.9.13
  • Tensorflow 2.9.1
  • RLLib 2.3.1
  • Matplotlib
  • Numpy
  • Notebook
  • Gym or Gymnasium
  • Pygame
  • Scikit-Learn
  • Tensorflow Directml Plugin (optional)

You can easily install these requirements via pip install or conda install, depending on your package manager.

Training

To train the agents, you can run one of the following files (e.g. python file.py)

  • run_ppo_acc.py : Train PPO with/without LSTMs
  • run_ppo_acc_stacking.py : Train PPO with/without state-stacking
  • run_ppo_lkas.py : Train PPO with/without LSTMs
  • run_ppo_lkas_stacking.py : Train PPO with/without LSTMs

noise-adaptive-driving-assistance-system's People

Contributors

kochlisgit avatar nikosntigas avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

akm108

noise-adaptive-driving-assistance-system's Issues

Python3.8 can use?

I'm already installed carla0.9.13(python3.8) and carla_ros_bridge,and i want to connect carla_ros_bridge
You can tell me how to do?
thanks.

python3 run_carla.py

I have opened carlaue4(./CarlaUE4.sh), but this error occurs when executing python3 run_carla.py.
Can you tell me how to solve this?

(noiseacc) ma@ma-ROG-Strix:~/Downloads/carla/CARLA_0.9.13/PythonAPI/Noise-Adaptive-Driving-Assistance-System$ python3 runcarla.py
Launching Carla server...
4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

LowLevelFatalError [File:Unknown] [Line: 136]
Exception thrown: bind: Address already in use
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=131160 LargeMemoryPoolOffset=196744
Malloc Size=131160 LargeMemoryPoolOffset=327928
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault (core dumped)
Carla server has crashed! Relaunching...
Launching Carla server...
4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

LowLevelFatalError [File:Unknown] [Line: 136]
Exception thrown: bind: Address already in use
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=131160 LargeMemoryPoolOffset=196744
Malloc Size=131160 LargeMemoryPoolOffset=327928
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault (core dumped)
Carla server has crashed! Relaunching...
Launching Carla server...
4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

demo video

Can you give me training demo video(run_ppo_acc.py,run_ppo_acc_stacking.py)?

carla linux build problem

You new version of Adaptive-Cruise Controller[Noise-Adaptive-Driving-Assistance-System](https://github.com/kochlisGit/Noise-Adaptive-Driving-Assistance-System] use carla debian,but i use building CARLA from source.
Can you tell me how to Modify the code(your all code)?
i know every code need to add this:
import glob
import os
import sys

try:
sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
sys.version_info.major,
sys.version_info.minor,
'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
except IndexError:
pass

import carla

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.