adamczykpiotr / SemiAutonomousLaneKeepingSystem

Semi-autonomous system for lane keeping based on C++ & OpenCV 4.x

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semi-autonomous lane keeping system

Semi-autonomous lane keeping system based on C++ & OpenCV 4.x.
Project for my engineering thesis at AGH University of Science and Technology [WIMiIP].

Building

Linux: ./build.sh
Windows: Using Visual Studio 2019

Depencencies

Linux: ./build.sh install
Windows: Download OpenCV in version 4.1.1 and extract it to C:\opencv then copy all files from C:\opencv\build\x64\vc15\bin to VisualStudio\x64\Debug and Release directories

Progress history

Task & Commit Date
Finished readme 2020-03-18
Build tools 2020-03-20
Lane detection 2020-03-20
Hysteresis 2020-03-21

To do

  • Software
    • Build tools
    • Road lane recognition
      • Turn prediction
      • Hysteresis
      • Optimization
        • Multi-threading
        • ARM NEON optimizations
      • PID controller for steering angle calculation
  • Hardware
    • Opel EPS-4400 reverse engineering
      • Gather all necessary datasheets
      • Board schematics based on PCB
      • Inject own steering signals
      • Prevent triggering DTCs (Diagnostic Trouble Codes)
    • Raspberry Pi 4 <-> Power steering
      • Communication
  • Safety measures
    • Software
    • Hardware

References

General concept
https://medium.com/@mrhwick/simple-lane-detection-with-opencv-bfeb6ae54ec0
https://medium.com/pharos-production/road-lane-recognition-with-opencv-and-ios-a892a3ab635c

Use of Gaussian blur & simple turn prediction
https://github.com/MichiMaestre/Lane-Detection-for-Autonomous-Cars

PID Controller
https://en.wikipedia.org/wiki/PID_controller
https://www.youtube.com/watch?v=4Y7zG48uHRo

About

Semi-autonomous system for lane keeping based on C++ & OpenCV 4.x

License:MIT License


Languages

Language:C++ 98.2%Language:Shell 1.8%